使用GROUP BY进行SQL查询

时间:2015-07-29 16:17:47

标签: sql sql-server

我有一张像

这样的表格
Id  WID  AID  DateValue
1    1    12  2015-07-10 15:14:46.770
2    1    13  2015-07-10 14:14:46.770
3    2    13  2015-07-10 13:14:46.770
4    2    13  2015-07-10 12:14:46.770
5    2    13  2015-07-10 11:14:46.770

现在,我希望通过对IdWID进行分组,然后从AID获取MAX值来获取DateValue值。

所需的输出是

Output:
Id
1
2
3

我试过这样的事情

SELECT Id, MAX(DateValue) 
FROM Table1 
GROUP BY WID, AID` 

虽然我不想在选择中DateValue但是没关系。

任何人都可以帮助我吗

2 个答案:

答案 0 :(得分:4)

我想你想要一个这样的查询:

SELECT Id --or *
FROM (
    SELECT *
        , ROW_NUMBER() OVER (PARTITION BY WID, AID ORDER BY DateValue DESC) AS seqNum
    FROM yourTable) dt
WHERE (SeqNum =1);

答案 1 :(得分:3)

您可以使用相关的子查询,如下所示:

Status.Failure