SQL开窗函数

开窗函数格式

函数名(列) OVER(选项)

如:

 row_number() over(partition by xxx order by xxxx desc) xxx

SQL 标准允许将所有聚合函数用做开窗函数,使用 OVER 关键字来区分这两种用法。

在同一个SELECT语句中可以同时使用多个开窗函数,而且这些开窗函数并不会相互干扰。

它和聚合函数的不同之处是,对于每个组返回多行,而聚合函数对于每个组只返回一行。

SELECT
	DISTINCT --注意去重
	SUBSTRING(a.itemno, 1, 12)  订单号,
	a.mano_main 型号,
	a.ex_ysdm 颜色,
	a.splength 长度, 
	SUM(a.qty) over (PARTITION by SUBSTRING(a.itemno, 1, 12),a.mano_main,a.ex_ysdm,a.splength)  支数,--按型号、颜色、订单号、长度汇总
	a.price_type  ,
	a.paint_type ,
	a.single_area ,
	a.valuation_area ,
	a.single_price ,
	SUM(a.amount) over (PARTITION by SUBSTRING(a.itemno, 1, 12),a.mano_main,a.ex_ysdm,a.splength) 金额,
	a.outer_perimeter,
	a.venner_perimeter,
	b.projectname ,
	b.date1
FROM
	erp_cpgl_cpck_detail_alu_ft a
inner join erp_cpgl_cpck_main b on
	a.billno = b.djno
	and a.billtype = b.djlb
where
	a.qty>0
	and a.billtype = '销售出库单'
	and a.billno = 'XSCKD21081100019'

更详细参考:https://www.cnblogs.com/lihaoyang/p/6756956.html

posted @ 2021-07-20 13:51  红本本本  阅读(198)  评论(0)    收藏  举报