0

我有一个包含以下列的表格。它用于跟踪用户在其计算机上运行的软件应用程序以及开始和结束日期。

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 天。

在上面的示例数据中,用户 001 在“Office”类别中运行 Word 和 Excel,并且这两个应用程序同时运行了 2 天以上。

您将如何为此编写 SQL 查询?提前致谢!

4

1 回答 1

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)
于 2013-05-28T14:34:11.303 回答