-2

私の質問は、1つのクエリで3つの条件のカウントを取得したいということです。複数のクエリを実行してこれを実行できることはわかっていますが、問題は1つのクエリで必要なすべてです

私が試したことは私の質問です

SELECT COUNT( IF( da <3, da, 0 ) ) AS da1, 
       COUNT( IF( da <2, da, 0 ) ) AS da2, 
       COUNT( IF( da <1, da, 0 ) ) AS da3
FROM tv

そしてその結果は

4 4 4

しかし、期待される結果は

2 1 0

da列のテーブル内に存在するデータは

3 2 1 3
4

3 に答える 3

2
SELECT SUM( IF( rr <3, 1, 0 ) ) AS da1, 
       SUM( IF( rr <2, 1, 0 ) ) AS da2, 
       SUM( IF( rr <1, 1, 0 ) ) AS da3
FROM tv;
于 2013-03-21T05:47:31.747 に答える
0

COUNT()で使用する必要がありますGROUP BY- それはあなたの問題かもしれません。`da` でグループ化してみてください。

于 2013-03-21T05:49:25.017 に答える
0

質問の解決策を見つけたところですが、PSR の解決策も正しいです

SELECT * 
FROM (

    SELECT COUNT( da ) AS da1
    FROM tv
    WHERE da <3
    ) AS da1, (

    SELECT COUNT( da ) AS da2
    FROM tv
    WHERE da <2
    ) AS da2, (

    SELECT COUNT( da ) AS da3
    FROM tv
    WHERE da <1
    ) AS da3
于 2013-03-21T05:53:40.550 に答える