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

1つのクエリで要約結果を作成する

    これは標準のピボットクエリです:

      SELECT uc.uut_sn,
             MAX(CASE 
                   WHEN uc.characteristic_name = 'char_name_1' THEN uc.characteristic_value 
                   ELSE NULL 
                 END) AS char_name_1,
             MAX(CASE 
                   WHEN uc.characteristic_name = 'char_name_2' THEN uc.characteristic_value 
                   ELSE NULL 
                 END) AS char_name_2,
             MAX(CASE 
                   WHEN uc.characteristic_name = 'char_name_3' THEN uc.characteristic_value 
                   ELSE NULL 
                 END) AS char_name_3,
        FROM unit_characteristics uc
    GROUP BY uc.uut_sn
    

    動的にするには、を使用する必要があります。プリペアドステートメントと呼ばれるMySQLの動的SQL構文 。 2つのクエリが必要です。最初のクエリはcharacteristic_nameのリストを取得します 値なので、最終的なクエリとして私の例で見られるように、適切な文字列をCASE式に連結できます。



    1. 巨大なデータベースからのPrimefacesAutocompleteが高速に動作しない

    2. 最初の文字でアルファベット順にグループ化するのが最善の方法ですか?

    3. バインド値INSERTINTOmysql perl

    4. フォームで数値が繰り返されるとエラーが発生します