在SQL查询中省略聚合列

时间:2011-02-08 20:10:14

标签: sql sql-server subquery aggregate-functions

是否可以在查询中省略聚合列?举个例子:

SELECT Id, Description, MAX(Created)
FROM Record
GROUP BY Id, Description

如何从结果集中省略MAX(已创建)列? 此查询正用于子查询,因此我可以加入最新记录并省略任何旧记录。我知道它不会产生很大的不同,但一般来说我的做法是只返回你需要的数据,在这种情况下我只想加入最新的记录,然后提取描述。我实际上并不关心日期是什么。

有什么想法?我太挑剔了吗?

4 个答案:

答案 0 :(得分:4)

如果您只想要最近记录的描述(1条记录)(MAX(已创建)),那么

SELECT TOP 1 Id, Description
FROM Record
ORDER BY CREATED DESC

答案 1 :(得分:1)

select TOP 1 ID, Description from Record
    group by ID, Description order by MAX(Created) DESC

如果没有对列进行分组,则无法使用聚合函数。

如上所述,您甚至可能不需要聚合函数

select TOP 1 ID, Description from Record order by Created DESC

答案 2 :(得分:0)

除非我误解了这个问题,否则你不能从选择中删除你不想要的列吗?

SELECT Id, Description
FROM Record
ORDER BY Created DESC LIMIT 1

答案 3 :(得分:-1)

SELECT DISTINCT Id, Description
FROM Record