gpt4 book ai didi

SQL 列表到范围结果

转载 作者:行者123 更新时间:2023-12-04 14:25:12 26 4
gpt4 key购买 nike

考虑一种情况,我们得到了一个帐户 ID 列表(比如一个带有 account_id 字段(整数)的表),其中的帐号如下所示:

account_id
1001
1002
1003
1008
1009
1010
1011
1050
1051

我正在尝试创建将此列表转换为范围的查询。

因此,一个范围将由连续的帐号序列组成,例如,帐户 ID 从 1001 到 1003,然后是 1008 到 1011,然后是 1050 到 1051。

我正在尝试获得以下输出:

account_from    account_to
1001 1003
1008 1011
1050 1051

我被困在这个问题上,不知道如何获得所需的结果。这是 fiddle .

最佳答案

这是一个经典的 Gaps-and-Islands,可以通过 Row_Number() 轻松解决

查看子查询的结果以更好地理解该方法。

Select account_from = min([account_id])
,account_to = max([account_id])
From (
Select *
,Grp = [account_id] - row_number() over (Order by [account_id])
From YourTable
) A
Group By Grp

返回

account_from    account_to
1001 1003
1008 1011
1050 1051

关于SQL 列表到范围结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44630994/

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