gpt4 book ai didi

sql - 如何在选择查询中递增

转载 作者:行者123 更新时间:2023-12-02 09:54:56 24 4
gpt4 key购买 nike

我正在处理一个查询,我想增加其中一个字段并在键值不同时重新启动计数器。

我知道这段代码不起作用。从编程上来说,这就是我想要的......

declare @counter int, @id
set @counter = 0
set @id = 0

select distinct
id,
counter = when id = @id
then @counter += 1
else @id = id
@counter = 1

...最终结果如下所示:

ID    Counter
3 1
3 2
3 3
3 4
6 1
6 2
6 3
7 1

是的,我被 SQL2k 困住了。否则 row_number() 会起作用。

最佳答案

假设有一个表:

CREATE TABLE [SomeTable] (
[id] INTEGER,
[order] INTEGER,
PRIMARY KEY ([id], [order])
);

在 Microsoft SQL Server 2000 中实现此目的的一种方法是使用子查询来计算具有相同 id 和较低排序的行。

SELECT *, (SELECT COUNT(*) FROM [SomeTable] counter 
WHERE t.id = counter.id AND t.order < counter.order) AS row_num
FROM [SomeTable] t

提示:现在是 2010 年。很快您的 SQL Server 将达到可以运行的年龄。

如果您使用 SQL Server 2005 或更高版本,您将获得精彩的新函数,例如 ROW_NUMBER() OVER (PARTITION...)

关于sql - 如何在选择查询中递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214544/

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