4

ゼロより大きくゼロに等しい場合にのみ、特定の 1 フィールドのカウントを実行する mysql select ステートメントを作成する方法はありますか。

これを達成するために2つのステートメントを書くことができますが、1つのステートメントでそれを行うことは可能ですか.

4

4 に答える 4

16

おそらくこのようなもの:

SELECT SUM(CASE WHEN x > 0 THEN 1 ELSE 0 END) as GreatherThanZero
    , SUM(CASE WHEN x = 0 THEN 1 ELSE 0 END) as EqualZero
FROM table
WHERE x >= 0
于 2012-05-21T20:30:05.193 に答える
5

はい。

SELECT COUNT(*) FROM Table WHERE Field > 0
UNION SELECT COUNT(*) FROM Table WHERE Field = 0
于 2012-05-21T20:45:06.073 に答える
1

はい。

SELECT SUM(CASE WHEN column > 0 THEN column ELSE 0 END CASE), SUM(CASE WHEN column < 0 THEN column ELSE 0 END CASE) FROM mytable
于 2012-05-21T20:32:54.327 に答える
0

さて、私があなたの質問を正しく理解した場合、このようなものが機能するはずです:

SELECT
   COUNT(Field)
FROM
   Table
WHERE 
   Field >= 0
于 2012-05-21T20:30:50.750 に答える