1

共通テーブルで GROUP BY のさまざまな結果を結合するクエリを作成する効率的な方法はありますか? サブグループの集計関数の結果を元のテーブルの完全なフィールドとマージする場合、MySQL はどのように処理しますか?

私はこれとその遅いを使用しています(そして、CONDITION = 1以外の条件も必要です)

SELECT a.CID,a.AS_ALL,b.AS_ACTIVE FROM 
            (SELECT CID,COUNT(DISTINCT RAID) AS AS_ALL FROM MYTABLE GROUP BY CID) a
            LEFT JOIN
            (SELECT CID,COUNT(DISTINCT RAID) AS AS_ACTIVE FROM MYTABLE WHERE CONDITION=1 GROUP BY CID ) b ON a.CID=b.CID;

また、次のようなものを使用しても保存されますか?? MySQL は COLUMN_A を集計の結果と常に正しくマージしますか?

SELECT  COLUMN_A COUNT(DISTINCT COLUMN_A), SUM(COLUMN_A),SUM(COLUMN_B) FROM ATABLE WHERE CONDITION=1 GROUP BY COLUMN_C 

アドバイスありがとう

4

1 に答える 1

0

これを試して:

SELECT CID,COUNT(DISTINCT RAID) AS AS_ALL,SUM(IF(CONDITION=1, 1, 0)) AS AS_ACTIVE 
FROM MYTABLE GROUP BY CID
于 2012-11-27T13:28:30.913 に答える