sql >> Databáze >  >> RDS >> Mysql

mysql dotaz pro dynamickou konverzi řádkových dat na sloupce

Jednoduše nemůžete mít statický příkaz SQL vracející proměnný počet sloupců. Takové prohlášení musíte vytvořit pokaždé, když se změní počet různých okresů. Chcete-li to provést, nejprve spusťte

SELECT DISTINCT District FROM district_details;

Tím získáte seznam okresů, kde jsou podrobnosti. Potom vytvoříte příkaz SQL iterující předchozí výsledek (pseudokód)

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;"

A proveďte tento dotaz. Poté budete muset ve svém kódu zvládnout zpracování proměnného počtu sloupců



  1. Odstraňte obrovské množství dat z velké tabulky

  2. Halloweenský problém – část 1

  3. Dávkový soubor pro připojení mysql a spouštění příkazů

  4. vybraní uživatelé mají více než jeden odlišný záznam v mysql