合并两行数据并获得不同的计数

时间:2014-08-05 16:01:28

标签: sql sql-server linq-to-sql

这个问题继续Merging every two rows of data in a column in SQL Server

我的赛事结构......

Id    UserId     EventId        EventDateTime
1       1           A           18-06-2013 10:36
2       1           B           18-06-2013 10:40
3       1           C           18-06-2013 10:46
4       1           D           18-06-2013 10:50
5       1           A           18-06-2013 13:36

从前面的问题我得到了以下格式的数据..

UserId  EventStart  EventEnd
1        A           B
1        B           C

现在我想得到Unique' EventStart'和' EventEnd'并按UserId和Date / s过滤它们

报告格式为

EventStart EventEnd Count
 A           B       5
 B           C       3

我知道我可以使用上一个问题查询中的数据并将其存储在一个表格中并按建议尝试here

但如果我可以直接从“事件表”中获取数据,那将会很棒。使用' UserId'到报告格式和'日期'过滤

真心感谢任何帮助。

谢谢..

1 个答案:

答案 0 :(得分:0)

如果您只想计算出现次数,请在基本相同的查询中使用group by

select eventstart, eventend, count(*)
from (select userId, eventid as eventstart,
             (select top 1 t2.eventid
              from mytable t2
              where t2.userid = t.userid and
                    t2.id > t.id
              order by t2.id
             ) as eventend
      from mytable t
     ) t
where eventend is not null
group by eventstart, eventend;