gpt4 book ai didi

php - SQLITE 按组选择并限制每个组的结果

转载 作者:行者123 更新时间:2023-12-04 03:37:43 24 4
gpt4 key购买 nike

我有以下 SQLITE 表:

<表类="s-表"><头>COL1COL2COL3<正文>tit1类别 1时间1tit2第三类时间2tit3类别 1时间3td4类别 1时间4tit5第三类时间5t6cat2时间6tit7类别 1时间7

我想选择按 COL2 分组的所有行,其中 COL2 == cat1 或 cat2,但将结果限制为每组最多 2 行,并按 COL3 DESC 对结果进行排序。

因此,例如,在这种情况下,我只想获得:

<表类="s-表"><头>COL1COL2COL3<正文>tit7类别 1时间7td4类别 1时间4t6cat2时间6

是否可以通过(可能)一个或最多 2 个查询获得此信息?

到目前为止我试过了,但它没有按预期工作:

SELECT * FROM "tablename" WHERE "COL2" = "cat1" OR "COL2" = "cat2" GROUP BY "COL2" ORDER BY "COL3" DESC LIMIT 2

谢谢你的帮助

最佳答案

过滤表格并使用ROW_NUMBER()窗口函数:

SELECT COL1, COL2, COL3
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY COL2 ORDER BY COL3 DESC) rn
FROM tablename
)
WHERE rn <= 2
ORDER BY COL2, COL3 DESC

关于php - SQLITE 按组选择并限制每个组的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66565697/

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