我需要爲一個表創建一個select查詢,合併每個組在'Number'列上的行,以獲得具有所有可用但最新(按ID)列的單個行。MySQL合併行值爲單行
這裏就是我的意思是,我需要一臺這樣的:
ID | Number | Date 1 | Date 2 | Date 3 |
----------------------------------------------------
1 | 1 | 2011-10-01 | NULL | NULL |
2 | 1 | NULL | 2011-10-25 | NULL |
3 | 1 | NULL | NULL | 2011-11-13 |
4 | 1 | 2011-10-03 | NULL | 2011-11-10 |
5 | 2 | NULL | NULL | 2012-01-01 |
6 | 2 | 2012-03-11 | NULL | NULL |
,並返回本(ID列是無關的上述ID列):
ID | Number | Date 1 | Date 2 | Date 3 |
----------------------------------------------------
1 | 1 | 2011-10-03 | 2011-10-25 | 2011-11-10 |
2 | 2 | 2012-03-11 | NULL | 2012-01-01 |
所以對於每個組中的所有行通過'Number'列,我需要組中所有行的所有可用列值,但只需要每列的最新值。最新值由列中值的最高值'ID'確定。 (如果組中的任何一行中沒有值,則使用Null值)。
謝謝
哇,這很快! 我擔心有很多子查詢,我將這樣做的實際表格有超過200,000行,每組最多20-30行。 – JohnHenry
可以進一步對其進行優化,但先嚐試一下嗎? 200k行對於SQL Server不是很多 – Andomar