【发布时间】:2023-04-10 12:37:01
【问题描述】:
你能帮我解决 MySql 中的row_number() over partition 吗?
我已经尝试了下面的脚本,但它不能正常工作。我试图只选择购买的第一个产品。我选择的列是 Client_id、product 和 purchase_date。
select * from(select * from (SELECT @rownum:=@rownum + 1 as row_number,t.*
FROM (select cliend_id,prod,purchase_date from Mytable
group by cliend_id,prod,purchase_date order by cliend_id,purchase_Date) asc) t,
(SELECT @rownum := 0) r)a)b;
结果:
Row_number Client ID Prod Purchase date
1 1111 apple 11-Nov-10
2 1111 yougurt 11-Nov-11
3 1111 candy 11-Nov-13
4 2222 chocolate 11-Nov-09
5 2222 pear 9-Sep-09
6 2222 beer 12-Sep-10
7 2222 cheese 12-Sep-14
8 1234 apple 15-Nov-12
9 1234 candy 4-Oct-14
我怎样才能得到这个结果?
Row_number Client ID Prod Purchase date
1 1111 apple 11-Nov-10
2 1111 yougurt 11-Nov-11
3 1111 candy 11-Nov-13
1 2222 chocolate 11-Nov-09
2 2222 pear 9-Sep-09
3 2222 beer 12-Sep-10
4 2222 cheese 12-Sep-14
1 1234 apple 15-Nov-12
2 1234 candy 4-Oct-14
谢谢, 罗迪卡
【问题讨论】:
-
巧克力不应该从 1 开始行号吗?
标签: mysql sql window-functions