小编Jef*_*son的帖子

如何对时差超过一小时的记录进行分组?

我是这个网站的新手,但请耐心等待.

我正在尝试GROUP BY使用SQL Server的一些数据.

这是数据:

Computer    VisitDate
ComputerA   2012-04-28 09:00:00
ComputerA   2012-04-28 09:05:00
ComputerA   2012-04-28 09:10:00
ComputerB   2012-04-28 09:30:00
ComputerB   2012-04-28 09:32:00
ComputerB   2012-04-28 09:44:00
ComputerB   2012-04-28 09:56:00
ComputerB   2012-04-28 10:25:00
ComputerA   2012-04-28 12:25:00
ComputerC   2012-04-28 12:30:00
ComputerC   2012-04-28 12:35:00
ComputerC   2012-04-28 12:45:00
ComputerC   2012-04-28 12:55:00
Run Code Online (Sandbox Code Playgroud)

我想要实现的是通过计算机对数据进行分组,但如果计算机的访问时间超过1小时,则还要分组.这是我正在尝试做的结果:

Computer     VisitDate
ComputerA    2012-04-28 09:00:00
ComputerB    2012-04-28 09:30:00
ComputerA    2012-04-28 12:25:00
ComputerC    2012-04-28 12:30:00
Run Code Online (Sandbox Code Playgroud)

所以Computer A显示两次,因为它在09:10:00访问,然后在12:25:00再次访问,这意味着相差超过1小时.

"GROUP BY Computer"很容易,但另一方面,我不知道从哪里开始.对此问题的任何帮助将不胜感激.

sql sql-server group-by

9
推荐指数
1
解决办法
2841
查看次数

SQL查询:如何创建"会话"列

我需要找到一种SessionSELECT查询中添加列的方法.我正在使用SQL Server 2005.

这是最初的示例数据:

ID    Name      VisitCounter    
1     TOM           1   
2     TOM           2   
3     TOM           3   
4     DICK          1       
5     DICK          2       
6     DICK          3       
7     DICK          4       
8     HARRY         1       
9     HARRY         2       
10    TOM           1   
11    TOM           2   
12    DICK          1       
13    DICK          2       
Run Code Online (Sandbox Code Playgroud)

我需要编写一个查询,它将添加一个名为"Session"的列,然后每次名称更改时都会递增visitcounter = 1.

所以查询应该导致:

ID    Name      VisitCounter    Session
1     TOM           1               1
2     TOM           2               1
3     TOM           3               1
4     DICK          1               2
5     DICK          2               2 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2005

1
推荐指数
1
解决办法
129
查看次数

标签 统计

sql ×2

group-by ×1

sql-server ×1

sql-server-2005 ×1

t-sql ×1