gpt4 book ai didi

sql-server-2012 - 根据日期订单将订单 ID 分配给表的不同行,并在 SQL Server 2012 中按 CustomerID 分组

转载 作者:行者123 更新时间:2023-12-02 03:32:10 24 4
gpt4 key购买 nike

我有一个每个客户购买的产品的数据集,我想通过对日期列进行排序来对他们的交易进行排序。

例如:

 SubID           Date                        other columns          OrderColumn  
------------------------------------------------------------------------------
1 2010/08/12 ...... ?
1 2011/09/12 ....... ?
1 2013/09/12 ...... ?
2 2013/09/12 ....... ?
2 2011/04/03 ...... ?

我想为每个客户的交易下订单。

像这样:

 SubID           Date                        other columns          OrderColumn  
------------------------------------------------------------------------------
1 2010/08/12 ...... 1
1 2011/09/12 ....... 2
1 2013/09/12 ...... 3
2 2013/09/12 ....... 2
2 2011/04/03 ...... 1

谢谢你的帮助

最佳答案

您可以使用 ROW_NUMBER() 窗口函数:

SELECT
SubID,
[Date],
OrderColumn = ROW_NUMBER() OVER (PARTITION BY SubID ORDER BY [Date] DESC)
FROM
dbo.YourTable

这是按 SubID 对您的数据进行“分区”,每个“分区”(或数据组)将根据订单日期从 1 开始递增编号

(旁注:有一个名为 Date 的列是非常不幸的 - 首先,它的描述性不强......什么样的 你在这里说的日期是什么?此外,DATE 是 SQL Server 中的保留字(数据类型)!你应该努力使用更有意义的东西 - OrderDateDateCreated 或在您的情况下有意义的任何内容)

关于sql-server-2012 - 根据日期订单将订单 ID 分配给表的不同行,并在 SQL Server 2012 中按 CustomerID 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956635/

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