【HQL】HQL每天购课总额前三的用户

订单表( dt, uid, course, price , 求每天购课总额前三的用户

dt

uid

course

price

2019-01-01

1

数学

50

2019-01-01

2

数学

20

2019-01-01

2

语文

30

2019-01-01

3

语文

40

2019-01-02

1

语文

10

2019-01-02

1

英语

30

2019-01-03

1

数学

40



with tbl_order as

(

    select '2019-01-01' as dt, 1 as uid, '数学' as course_id, 50 as price union all

    select '2019-01-01' as dt, 2 as uid, '数学' as course_id, 50 as price union all

    select '2019-01-01' as dt, 3 as uid, '数学' as course_id, 50 as price union all

    select '2019-01-01' as dt, 4 as uid, '数学' as course_id, 50 as price union all

    select '2019-01-01' as dt, 1 as uid, '数学' as course_id, 50 as price union all

    select '2019-01-01' as dt, 1 as uid, '数学' as course_id, 50 as price union all

    select '2019-01-01' as dt, 1 as uid, '数学' as course_id, 50 as price union all

    select '2019-01-01' as dt, 1 as uid, '数学' as course_id, 50 as price 

) 

select dt, uid

from(

    select dt, uid, sum(price), rank() over (partition by dt order by sum(price) desc) as rk

    from tbl_order

    group by dt,uid

) a

WHERE rk >= 3


猜你喜欢

转载自blog.51cto.com/10120275/2512640
HQL