gpt4 book ai didi

mysql - 选择具有重复项的列中的前 5 个

转载 作者:行者123 更新时间:2023-12-01 00:40:47 26 4
gpt4 key购买 nike

我编写了一个查询,该查询为我提供了一个数据列表,我需要选择前 5 条数据。例如

Num  Name
5 a
4 b
4 c
2 d
1 e
1 f
1 g
0 h

但是,如果我简单地使用 LIMIT 5,则会遗漏名称为 f 和 g 的数据点。我如何才能从 a-h 中进行选择。这只是一个示例数据片段。我的实际数据包含更多行,因此我可以简单地排除底行。编辑抱歉,当我说前 5 名时,我的意思是前 5 个 Num 条目。所以 5, 4 ,2 ,1,0 但是 1 有重复项所以我想选择所有这些重复项

最佳答案

您可以通过在 SQL 逻辑中添加一个具有增量行号的新字段来进行计算,如下所示:

Feeds  Num  Name
1 5 a
2 4 b
2 4 c
3 2 d
4 1 e
4 1 f
4 1 g
5 0 h

然后按所需等级限制结果(在您的情况下为 5)。以下是供您引用的 SQL:

SELECT num, name from (
SELECT @row_number:=CASE WHEN @num=num
THEN @row_number ELSE @row_number+1 END AS feeds,@num:=num AS num, name
FROM table1, (SELECT @row_number:=0,@num:='') AS t
ORDER BY num desc
)t1
WHERE feeds <= 5

SQL-fiddle link

关于mysql - 选择具有重复项的列中的前 5 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33061894/

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