MySql,我如何分组,在一个选择查询中,是正数还是负数?

MySql,我如何分组,在一个选择查询中,是正数还是负数?,sql,mysql,group-by,Sql,Mysql,Group By,我想根据所有的负值和正值进行分组,有什么办法吗?按符号分组(字段)应该有效。尝试以下方法: select count(*), IF(foo >= 0, "pos", "neg") as sign from test group by sign; 其中foo是具有正值或负值的列 编辑:如果你想让零值与正值和负值区别对待,Stefan的解决方案更优雅、更好。选择SUM(当某个列=0时,则为1,否则为0结束) 从你的桌子上 斯特凡的解决方案似乎是目前为止最好的答案。如果希望将0与正数分组,可

我想根据所有的负值和正值进行分组,有什么办法吗?

按符号分组(字段)应该有效。

尝试以下方法:

select count(*), IF(foo >= 0, "pos", "neg") as sign  from test group by sign;
其中foo是具有正值或负值的列

编辑:如果你想让零值与正值和负值区别对待,Stefan的解决方案更优雅、更好。

选择SUM(当某个列<0时,则为1,否则为0结束)作为负值,
SELECT SUM(CASE WHEN SomeColumn < 0 THEN 1 ELSE 0 END) AS negative_values,
       SUM(CASE WHEN SomeColumn >=0 THEN 1 ELSE 0 END) AS non_negative_values
    FROM YourTable
作为非负值求和(当某列>=0时,则为1,否则为0结束) 从你的桌子上
斯特凡的解决方案似乎是目前为止最好的答案。如果希望将0与正数分组,可以使用

GROUP BY `field` >= 0

我会选择
=
而不是
-零(IMHO)更自然地与正数关联,而不是负数。