MySQLで単一テーブルから複数カラムを重複排除後にSUM関数で集計したい
MySQL 5.7を使用しております。
実現したいことは単一のテーブルで複数カラム(C1,C2,C3,C4,C5)の重複を排除したのち
重複排除した別のカラムをSUM関数で集計を行ないたいと思っております。
レコード件数は約3千万件以上あります。イメージとしては以下のSQLを考えましたが
単純にGROUP BYしてSUM関数で集計すればよいと考えられますが、パフォーマンスが極端に落ちます。
パフォーマンスを上げるSQLが考えられず悩んでおります。
どなたかお力をお貸し願いますでしょうか。
[パフォーマンスの悪いクエリ1] SELECT C1 , C2 , C3 , C4 , C5 , SUM(C6) FROM sample_table t1 GROUP BY C1 , C2 , C3 , C4 , C5 [パフォーマンスの悪いクエリ2] SELECT C1 , C2 , C3 , C4 , C5 , SUM(C6) FROM sample_table t1 LEFT JOIN ( SELECT DISTINCT C1 , C2 , C3 , C4 , C5 FROM sample_table t2 ) a ON a.C1 = t1.C1 AND a.C2 = t1.C2 AND a.C3 = t1.C3 AND a.C4 = t1.C4 AND a.C5 = t1.C5

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/09/25 07:12
2023/09/25 09:10 編集