0
我有一個表如下。對於每個不同的ID2值和時間來說,都需要選擇在(0,1,2,3,4)中具有ID3的行。然後,我想在5列中顯示'Val',並用零填充空列。 (如果ID3 = 0,那麼COL0 =纈氨酸 如果ID3 = 1,則COL1 =纈氨酸,和...)MySQL GROUP BY列和顯示不同列中的值
ID1 ID2 ID3 Val Time
1 224 0 224 10
2 224 1 48 10
3 224 4 270 15
4 224 5 1000 27
5 225 0 231 10
6 225 1 400 10
7 225 0 100 20
換句話說,輸出應該是如下(由ID2,時間組):
ID2 Time col0 col1 col2 col3 col4
224 10 224 48 0 0 0
224 15 0 0 0 0 270
225 10 231 400 0 0 0
225 20 100 0 0 0 0
注:表有50M行。
謝謝。我認爲在'之後','id3'應該被'Val'替代。如果我們設置一個條件,將col0的值爲零的行刪除到col4,那會更好。此外,我想知道如何優化此查詢以減少時間複雜性。 – YNr
你說得對,我把'id3'改成了'val'。此外,我添加了一個「有」條款來刪除這些'0'結果。 –