当前位置: 首页 > 面试题库 >

如何在选择查询中增加

陆曜文
2023-03-14
问题内容

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

我知道这段代码行不通。以编程方式,这就是我想要的…

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...)



 类似资料:
  • 问题内容: 我有一个查询,看起来像这样: 这是一个非常基本的查询。除了提取Item的值之外,我还想将其他值添加到混合中,然后将其返回给我。在原始SQL中,我会这样做: 如何通过sqlalchemy手动添加该值? 问题答案: 您需要使用,看起来有点像这样: 注意,该参数无需任何转换即可插入查询;如果您从应用程序外部接受text参数的值,则可能使您暴露于SQL Injection漏洞。如果这是您需要的

  • 问题内容: 在MS Access中,我想在选择查询的返回结果中插入新列。新列的每一行都具有相同的值。例如,我的选择返回列A,B,而我希望C成为选择查询创建的新列: 问题答案:

  • 如何构建查询来实现这一点?

  • 我正在使用Spring数据jpa来创建服务。使用我从多个表中提取记录。我在模型类中使用了映射。模型类与和进行映射。相符。 我只想从建筑中选择建筑名称。 谁能告诉我怎么办? 查询DSL 结果

  • 问题内容: 我有一个SQL查询为我提供X个结果,我希望查询输出中有一个叫做count的命令使查询变得像这样: 我怎样才能做到这一点? 问题答案: 好吧,我想这已经足够构成答案了:以下链接指定了两种方法:http : //www.techrepublic.com/blog/microsoft-office/an-access-query-that-returns- every-nth-记录/ 第一种

  • 我在这里尝试使用光标,我想知道如何访问选择列中的光标字段? 我有一个如下的实现, 我想明白,这个实现有什么问题。 谢谢你。