mysql pivot risultati delle query con GROUP BY

Ho una tabella di dati che voglio esportare in un CSV. Idealmente, mi piacerebbe cambiare le righe e le colonne, in modo che i dati siano raggruppati un po ‘meglio.

Per spiegare ulteriormente, attualmente, il database appare come questo ..

data_id data_timestamp data_value -------------------------------------------- 1 2011-07-07 00:01:00 0.400 1 2011-07-07 00:02:00 0.500 1 2011-07-07 00:03:00 0.600 1 2011-07-07 00:04:00 0.700 2 2011-07-07 00:01:00 0.100 2 2011-07-07 00:02:00 0.200 2 2011-07-07 00:03:00 0.250 2 2011-07-07 00:04:00 2.300 

Quello che mi piacerebbe fare raggruppa il data_value con il valore data_timestamp, in modo che i timestamp siano raggruppati, e ogni valore_dati per ogni id_dati è mostrato in una colonna, invece che in una riga.

 data_timestamp input_1 input_2 -------------------------------------------- 2011-07-07 00:01:00 0.400 0.100 2011-07-07 00:02:00 0.500 0.200 2011-07-07 00:03:00 0.600 0.250 2011-07-07 00:04:00 0.700 2.300 

Di seguito è la query che sto usando …

 SELECT d.data_timestamp, d.input_1, d.input_2 FROM ( SELECT data_timestamp, IF(data_id=1,data_value,NULL) AS 'input_1', IF(data_id=2,data_value,NULL) AS 'input_2' FROM data ) AS d ORDER BY data_timestamp ASC 

Ma non è proprio quello che sto volendo, in quanto ora ci sono valori NULL ogni volta che un dataid non ha un valore. GROUP BY sembra raggruppare anche data_value, che non è quello che voglio.

Eventuali suggerimenti?

MODIFICARE:

Ho già provato a utilizzare WHERE d.input_1 NON È NULL nella query esterna, ma non è ansible ottenere i risultati ..

Prima del DOVE …

 data_timestamp input_1 input_2 -------------------------------------------- 2011-07-07 00:01:00 0.400 NULL 2011-07-07 00:01:00 NULL 0.100 2011-07-07 00:02:00 0.500 NULL 2011-07-07 00:02:00 NULL 0.200 2011-07-07 00:03:00 0.600 NULL 2011-07-07 00:03:00 NULL 0.250 2011-07-07 00:04:00 0.700 NULL 2011-07-07 00:04:00 NULL 2.300 

Aggiungere WHERE d.input_1 IS NOT NULL eliminerà i valori di input_2.

 data_timestamp input_1 input_2 -------------------------------------------- 2011-07-07 00:01:00 0.400 NULL 2011-07-07 00:02:00 0.500 NULL 2011-07-07 00:03:00 0.600 NULL 2011-07-07 00:04:00 0.700 NULL 

Inoltre, in realtà, ho circa 20 id da raggruppare, quindi non sarebbe la migliore delle idee per O tutti loro …