sql-parser
sql-parser copied to clipboard
OVER (PARTITION BY …) support
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;