gpt4 book ai didi

mysql - 选择每个 ID 的前 3 次出现

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:18 24 4
gpt4 key购买 nike

我有下表

ID | date   
1 | 2016-01-01
1 | 2016-01-02
1 | 2016-02-01
1 | 2016-03-01
1 | 2016-03-11
2 | 2016-01-01
2 | 2016-01-03
2 | 2016-01-05
2 | 2016-02-01
2 | 2016-03-01
3 | 2016-01-03
3 | 2016-01-04
3 | 2016-01-05
3 | 2016-01-06

我需要查询返回每个 ID 的前 3 个日期,结果应该是:

ID | date   
1 | 2016-01-01
1 | 2016-01-02
1 | 2016-02-01
2 | 2016-01-01
2 | 2016-01-03
2 | 2016-01-05
3 | 2016-01-03
3 | 2016-01-04
3 | 2016-01-05

最佳答案

你可以为此使用变量:

SELECT ID, `date`
FROM (
SELECT ID, `date`,
@rn := IF(@id = ID, @rn + 1,
IF(@id := ID, 1, 1)) AS rn
FROM mytable
CROSS JOIN (SELECT @rn := 0, @id := 0) AS vars
ORDER BY ID, `date`) AS t
WHERE t.rn <= 3

关于mysql - 选择每个 ID 的前 3 次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36240895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com