初级农民-请到新手上路获取积分
- 积分
- 6
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2017-1-9
- 最后登录
- 1970-1-1
|
Sudo code for reference, need to modify date functions based on SQL language. PARTITION BY year and using DENSE_RANK to filter out results:
SELECT ORDER_YEAR, CUSTOMER_ID, VOLUMN_VALUE
FROM (
SELECT
ORDER_TS(YEAR) as ORDER_YEAR
,CUSTOMER_ID
,VOLUMN_END-VOLUMN_START AS VOLUMN_VALUE
,SUM(CASE WHEN ORDER_TS(MONTH) = 01 THEN VOLUME END) AS VOLUMN_START
,SUM(CASE WHEN ORDER_TS(MONTH) = 12 THEN VOLUME END) AS VOLUMN_END
,DENSE_RANK() OVER (PARTITION BY ORDER_TS(YEAR) ORDER BY VOLUMN_VALUE DESC) AS VOLUMN_RANK
FROM tableA
GROUP BY 1,2,3) a
WHERE VOLUMN_RANK < 11
ORDER BY 1 DESC, 3 DESC, 2; |
|