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

Kontingenční tabulka MySQL pomocí java

Dynamické SQL můžete použít k dynamickému pivotování, například

SET @sql = NULL;
SET @date = '2020-11-30';

SELECT GROUP_CONCAT(
             CONCAT(
                    'SUM(CASE WHEN Partners = "', Partners,'" THEN Amount ELSE 0 END ) AS'
                    ,Partners
                    )
       )
  INTO @sql
  FROM ( SELECT DISTINCT Partners FROM BPFinal WHERE Date = @date ) AS b;

SET @sql = CONCAT('SELECT Branch,',@sql,
                   ' FROM BPFinal
                    WHERE Date = "',@date,'"' 
                  ' GROUP BY Branch'); 
                  
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; 

Ukázka



  1. Počítání všech řádků s konkrétními sloupci a seskupení podle týdnů

  2. Jaký je nejlepší způsob, jak vybrat minimální hodnotu z několika sloupců?

  3. Počítejte výskyty ve více sloupcích

  4. SQL Server replikace databáze