sql-parser icon indicating copy to clipboard operation
sql-parser copied to clipboard

OVER (PARTITION BY …) support

Open mweisgut opened this issue 5 years ago • 0 comments

TPC-DS queries contain the OVER() clause. Using this clause, PARTITION BY is often used additionally.

Example: TPC-DS query 12, natezza dialect:

select  i_item_id
      ,i_item_desc 
      ,i_category 
      ,i_class 
      ,i_current_price
      ,sum(ws_ext_sales_price) as itemrevenue 
      ,sum(ws_ext_sales_price)*100/sum(sum(ws_ext_sales_price)) over
          (partition by i_class) as revenueratio
from	
	web_sales
    	,item 
    	,date_dim
where 
	ws_item_sk = i_item_sk 
  	and i_category in ('Men', 'Books', 'Electronics')
  	and ws_sold_date_sk = d_date_sk
	and d_date between cast('2001-06-15' as date) 
				and (cast('2001-06-15' as date) + 30 days)
group by 
	i_item_id
        ,i_item_desc 
        ,i_category
        ,i_class
        ,i_current_price
order by 
	i_category
        ,i_class
        ,i_item_id
        ,i_item_desc
        ,revenueratio
limit 100;

mweisgut avatar Apr 26 '19 12:04 mweisgut