0
我有以下格式的一些數據:如何自我加入MySQL中的聚合函數的結果?
Table: MountHeights
ID | Height| Type | ItemCode | Context
--------------------------------------------
1 | 15 | max | BD1896-1W | exterior
2 | 12 | max | BD1896-1W | insect
3 | 18 | max | BD1896-1W | interior
4 | 13 | max | BD14120-1W | exterior
5 | 10 | max | BD14120-1W | insect
6 | 15 | max | BD14120-1W | interior
有每個項目的代碼的多行。
我試圖找出一種方式來獲得max(Height)
每個ItemCode
其中Type
=「最大」,出於某種原因,我不能完全包住我的身邊,我應該如何引用表本身的頭。
我希望得到的結果是沿着線:
Results:
max(Height)| ItemCode
---------------------------
18 | BD1896-1W
15 | BD14120-1W
我該怎麼辦呢?
這是令人難以置信的快速 - 謝謝你!我幾乎擁有它。我試圖在最後查詢sans'GROUP BY',但由於它只返回了一個結果,我認爲GROUP BY沒有什麼區別。 –
您需要每個產品代碼的最大高度,所以您當然必須逐項編碼。大多數其他dbms會在語句中給你一個語法錯誤,因爲它們要求每個選定的值要麼在GROUP BY子句中,要麼被聚合(使用MIN,MAX等)。這是SQL標準的一次,但由於SQL 99已經改變;只要它們是唯一的,您可以擁有非分組的非聚合列。 MySQL允許你選擇ItemCode而不用聚合或分組。不幸的是,它不檢查唯一性。 BD1896-1W和BD14120-1W都會產生錯誤。 –
這個評論當然就是Zaemz的評論。 Sirko給出的答案非常好。我只是想向Zaemz解釋爲什麼有可能選擇ItemCode並得到意想不到的結果。 –