我在 SQL Server 2005 中有下表和数据:
create table LogEntries (
ID int identity,
LogEntry varchar(100)
)
insert into LogEntries values ('beans')
insert into LogEntries values ('beans')
insert into LogEntries values ('beans')
insert into LogEntries values ('cabbage')
insert into LogEntries values ('cabbage')
insert into LogEntries values ('beans')
insert into LogEntries values ('beans')
我想对重复的 LogEntries 进行分组,以便得到以下结果:
LogEntry EntryCount
beans 3
cabbage 2
beans 2
除了使用游标之外,您能想到在 TSQL 中执行此操作的任何方法吗?
最佳答案
我想这样就可以了...虽然没有检查得太彻底
select
COUNT(*),subq.LogEntry
from
(
select
ROW_NUMBER() OVER(ORDER BY id)-ROW_NUMBER() OVER(PARTITION BY logentry ORDER BY id) as t,*
from
LogEntries
) subq
group by
subq.t,subq.LogEntry
order by
MIN(subq.ID)
关于sql - 在 SQL 中对重复的行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/374079/