2016-07-27 29 views
0

こんにちは私は一連のサブクエリをグループ化しようとしていますが、各行に対して同じ結果が得られます。複数のサブクエリをMySQLでグループ化する方法

 SELECT Campaign_Name, 
        (SELECT COUNT(Bounce) 
        FROM `temp_Data`) AS Sent, (SELECT COUNT(Bounce) 
              FROM `temp_Data` 
              WHERE Bounce = '0') AS Delivered, (SELECT SUM(Opened) 
                 FROM `temp_Data` 
                 WHERE Opened = '1')AS Opened 
FROM temp_Data 

GROUP BY Campaign_Name 

結果は以下のとおりです。私はそれはまだ私に同様の結果が得られる合計んので、場合でも

Campaign Name Sent Delivered Opened 
Campaign1  300 278  196 
Campaign2  300 278  196 

私のデータは0,1です。

各キャンペーンの個数を取得するにはどうすればよいですか?

+0

変更 'where句'あなたはそれを変更しません。 – NEER

+0

私たちに教えてくださいどのようにあなたのテーブルのスキーマです。 – Martin

答えて

0

これは

SELECT 
    Campaign_Name, 
    COUNT(*) AS Sent, 
    COUNT(CASE WHEN Bounce = '0' THEN 1 ELSE NULL END) AS Delivered, 
    COUNT(CASE WHEN Opened = '1' THEN 1 ELSE NULL END) AS Opened 
FROM temp_Data 
GROUP BY Campaign_Name 

control functionsCOUNTを見てみましょう単一のクエリで行うことができます。

ちょっと変わった部分はNULLの値が増えないので、それを使って選択カウントをしています。

+0

ありがとうございますが、コードに構文エラーが返されます。SQL構文にエラーがあります。4行目のCOUNT(CASE OPEN = '1' THEN 1 ELSE NULL)AS 'のように、使用するMySQLサーバのバージョンに対応するマニュアルを確認してください。 – Drake

+0

それ。今すぐご確認ください。 – evilpenguin

+0

申し訳ありません同じエラー – Drake

関連する問題