我是这个网站的新手,但请耐心等待.
我正在尝试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"很容易,但另一方面,我不知道从哪里开始.对此问题的任何帮助将不胜感激.
我需要找到一种Session
在SELECT
查询中添加列的方法.我正在使用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)