mysql - 如何收集不需要的值?

标签 mysql sql

我正在使用 COUNT(*) 来计算列中具有不同值的项目数。

我用过这个查询:


SELECT `type`, COUNT(*) FROM `fruits` GROUP BY `type`

status 是一列,其中的值为“Apples”、“Oranges”、“Grapes”、“Bananas”

所以结果是:

+------------+---------+
|    Type    | COUNT(*)|
+------------+---------+
| Apples     |       30|
| Oranges    |        8|
| Bananas    |        6|
| Grapes     |        2|
+------------+---------+

但我只想计算“Apples”和“Oranges”。其余的放在一行中。像这样:

+------------+---------+
|    Type    | COUNT(*)|
+------------+---------+
| Apples     |       30|
| Oranges    |        8|
| Others     |        8|
+------------+---------+

有办法吗?

最佳答案

派生表 中使用case 表达式 将其他表分组在一起。然后汇总其结果:

select `type`, COUNT(*)
from
(
    SELECT case when `type` in ('Apples','Oranges') then `type`
                else 'Others'
           end as 'type'
    FROM `fruits`
) dt
GROUP BY `type`

这样您只需编写一次 case 表达式,即不易出错且更易于维护。

关于mysql - 如何收集不需要的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57603497/

相关文章:

mysql - 如果sql查询中的记录相同,如何分配相同的唯一行号?

php - JOINS 与 while 语句

mysql - MySQL 查询缓存命中率 % 值代表什么?

mysql 按汇总列分组

mysql - Like 运算符错误

python - 使用元组的 Python 列表将多行插入数据库

Mysql在案例内部加入

mysql - 无法创建具有两列外键约束的表?

mysql - MySQL 中的多值属性

php - 选择选项时自动加载选项 PHP/MySQL