2015-09-24 34 views
0

我有一個表格,其中有一些列,我想選擇'id'和最高'值'。選擇ID,最大(值) - 不能正確識別id

當我這樣做:

SELECT id, max(value) AS highest_value FROM table WHERE id_column='2' GROUP BY id 

我得到的ID的正確的價值觀,但我得到多行(正常行爲)。

所以,我想只有最高值的id我做的標準要求是:

SELECT id, max(value) AS highest_value FROM table WHERE id_column='2' 

然後我有另一個ID爲同一highest_value ......不明白爲什麼。

+1

這就是當'SELECT'中的列不在'GROUP BY'中且未聚合時發生的情況。查詢返回* indeterminate *行的值。不要使用與其他數據庫不兼容的MySQL(mis)功能。 –

回答

1
... 
ORDER BY highest_value DESC 
LIMIT 1 

如果ID是唯一的,你甚至都不需要max()GROUP BY

SELECT id 
FROM table 
WHERE id_column = '2' 
ORDER BY value DESC 
LIMIT 1 
; 
+0

即使id是唯一的,他仍然需要'max'和'group by'。不同的故事,如果唯一的列是'id_column' – RubahMalam

+0

「我只想要最高值的ID」他的初始查詢是通過ID分組,在這一點上id_column只與初始過濾有關。 – Uueerdo