0
У меня есть таблица, как показано ниже. Он требуется для каждого отдельного значения ID2 и Time для выбора строк, которые имеют ID3 в (0,1,2,3,4). Затем я хочу показать «Val» в 5 столбцах и заполнить пустые столбцы нулем. (Если ID3 = 0, то col0 = Вал Если ID3 = 1, то col1 = Val, и ...)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 строк.
спасибо. Я думаю, что после «then», «id3» следует заменить на «Val». Если мы установим условие, которое удалит строки, которые имеют нулевые значения для col0 в col4, было бы лучше. Кроме того, мне интересно, как я могу оптимизировать этот запрос, чтобы сократить временную сложность. – YNr
Вы правы, я изменил 'id3' на' val'. Также я добавил предложение 'having', чтобы удалить эти результаты' 0'. –