gpt4 book ai didi

SQL - 根据行数限制返回的行数

转载 作者:行者123 更新时间:2023-12-02 22:48:53 24 4
gpt4 key购买 nike

这是我的数据:

item_ID | group_ID | count_of_items_in_group

2|ABC|3

5|ABC|3

9|ABC|3

29|DEF|3

3|DEF|3

4|DEF|3

200|XYZ|2

300|XYZ|2

600|GHI|1

SQL 字段: http://sqlfiddle.com/#!2/dfe09/1

对于每个组,我想将返回的 item_ID 数量限制为最多 2 个。我不在乎返回哪 2 个。如果组少于 2 行,则仅返回 1 行。

我无法为每个组编写 select top * 2 并将选择合并起来,因为我有几百个组。

我不知道从哪里开始,非常感谢您的帮助。

使用 MS SQL 2005

(表格布局与示例中完全相同,它是基于多个查询的 View )

最佳答案

为此使用ROW_NUMBER()函数:

SELECT *
FROM (select *,ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY item_id) as RowRank
from items_in_groups
)sub
WHERE RowRank <=2

演示:SQL Fiddle

ROW_NUMBER() 函数为每一行分配一个数字。 PARTITION BY 是可选的,但用于为该组中的每个值开始编号,即:如果您PARTITION BY group_id,则为每个唯一的group_id code> 值将从 1 开始编号。ORDER BY 当然用于定义计数方式,并且在 ROW_NUMBER() 函数中是必需的。

关于SQL - 根据行数限制返回的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18856197/

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