2011-02-08 92 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