我有一个包含以下列的表。它用于跟踪用户在其计算机上运行的软件应用程序的开始和结束日期。
UserID StartDate EndDate AppName AppCategory
001 1/1/2013 1/5/2013 MS Word Office
001 1/1/2013 1/4/2013 MS Excel Office
001 1/1/2013 1/4/2013 Visual Studio Development
002 ....... ........ ............. .........
我想知道哪些用户在同一个应用程序类别中运行多个应用程序(同时)超过2天。
在上面的示例数据中,User 001在“Office”类别中运行Word和Excel,两个应用程序同时运行超过2天。
你会如何编写SQL查询?提前谢谢!
答案 0 :(得分:1)
试试这个:
Select Distinct UserId, AppName From table t
Where Datediff(day, startDate, EndDate) > 2
And Exists
(Select * From table
Where userId = t.userId
And AppCategory = t.AppCategory
And Datediff(day, startDate, EndDate) > 2
Having Count(distinct Appname) > 1)