2011-02-08 83 views
1

是否可以忽略查询中的聚合列?举例:忽略SQL查询中的聚合列

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

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

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

+1

为什么不重写查询并删除聚合函数?查询字符串是免费的,您无需为查询的常规和启用聚合的版本支付额外费用。 – 2011-02-08 20:13:26

+0

请提供完整的查询来解决这个问题。 – 2011-02-08 20:13:43

+0

如果你不需要它,为什么你在select子句中有聚合? – marapet 2011-02-08 20:13:50

回答

4

如果你只想要说明的最新纪录(1个记录)(MAX(创建)),然后

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

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

SELECT Id, Description 
FROM Record 
ORDER BY Created DESC LIMIT 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 
-1
SELECT DISTINCT Id, Description 
FROM Record