sql >> データベース >  >> RDS >> Mysql

Javaを使用したMySQLピボットテーブル

    動的SQLを使用して、

    などの動的にピボットすることができます。
    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; 
    

    デモ



    1. データベースシャーディングのためのMySQLプロキシの代替

    2. MySQLで関係を作成する方法

    3. Wordpressユーザーとusermeta-1つのテーブルの複数の行を別のテーブルの1つの行に結合する

    4. データベースのサブセット化–IRIVoracityでの方法