gpt4 book ai didi

SQL:将顺序数据折叠为一行

转载 作者:行者123 更新时间:2023-12-04 13:44:47 27 4
gpt4 key购买 nike

我正在尝试将顺序数据折叠为一组。例如:在 City1 下面的数据应显示 2 行。

请在这里帮忙。

 CREATE TABLE #temp
(id INT NOT NULL IDENTITY(1, 1) ,
location1 VARCHAR(50)
)


INSERT INTO #temp VALUES ('City1')
INSERT INTO #temp VALUES ('City2')
INSERT INTO #temp VALUES ('City1')
INSERT INTO #temp VALUES ('City1')
INSERT INTO #temp VALUES ('City2')
INSERT INTO #temp VALUES ('City2')

SELECT * FROM #temp

预期输出:
City1  1
city2 2
city1 3
city2 4

最佳答案

请像这样使用。 (假设您使用的是 SQL 2012+)

解决方案 1

select location1, x1 from 
(
select * , ROW_NUMBER() OVER (PARTITION BY x1 order by Id) rnk from
(
select * ,sum(p) over(order by id)+1 x1 from
(
select * , case when location1 = ISNULL(lag(location1) over (order by id),location1) then 0 else 1 end p
from temp2
)x
)k
)p where rnk = 1

输出
location1            x1
-------------------- -----------
City1 1
City2 2
City1 3
City2 4

(4 rows affected)

关于SQL:将顺序数据折叠为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50756437/

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