4

如果大于零且等于零,是否有办法编写 mysql select 语句以仅对特定的 1 字段运行计数。

我可以编写 2 条语句来实现这一点,但是否可以在一条语句中完成。

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 回答