Mysql
 sql >> Database >  >> RDS >> Mysql

query mysql per convertire dinamicamente i dati delle righe in colonne

Semplicemente non puoi avere un'istruzione SQL statica che restituisce un numero variabile di colonne. È necessario costruire tale dichiarazione ogni volta che cambia il numero dei diversi distretti. Per farlo, esegui prima un

SELECT DISTINCT District FROM district_details;

Questo ti darà l'elenco dei distretti in cui ci sono i dettagli. Quindi costruisci un'istruzione SQL che esegue un'iterazione sul risultato precedente (pseudocodice)

statement = "SELECT name "

For each row returned in d = SELECT DISTINCT District FROM district_details 
    statement = statement & ", SUM(IF(District=""" & d.District & """,1 ,0)) AS """ & d.District & """" 

statement = statement & " FROM district_details GROUP BY name;"

Ed esegui quella query. Dovrai quindi gestire nel tuo codice l'elaborazione del numero variabile di colonne