mysql - 根据 1 个字段或另一个字段选择计数 - 条件计数

标签 mysql count

我在填写此表单时,表 manager_id 和 on_behalf_manager_id 实际上有 2 个字段,或者更确切地说,在插入表时,其中一个字段将被填充,另一个字段将为 0。现在我需要 manager_id 或 on_behalf_manager_id 相同的计数,表的结构如下:

Table : Feedbacks
id    manager_id     on_behalf_manager_id    score    created     status
1     2              0                       20       2017-08-17  1
2     2              0                       21       2017-08-18  1
3     0              2                       20       2017-08-17  1
4     1              0                       10       2017-08-17  1
5     2              0                       17       2017-08-17  1
6     0              1                       20       2017-08-17  1
7     0              2                       18       2017-08-17  1

所以我在实现计数时的最终结果应该是

manag_id          count
1                 2
2                 5

我读了很多,但找不到确切的解决方案。我想到的唯一解决方案是内部查询。

最佳答案

我不能 100% 确定这是否符合您的需求,但也许这会引导您走向正确的方向:

SELECT
    CASE
WHEN manager_id = 0 THEN
    on_behalf_manager_id
ELSE
    manager_id
END AS manag_id,
 count(
    CASE
    WHEN manager_id = 0 THEN
        on_behalf_manager_id
    ELSE
        manager_id
    END
) AS count
FROM
    feedback
GROUP BY
    CASE
WHEN manager_id = 0 THEN
    on_behalf_manager_id
ELSE
    manager_id
END

关于mysql - 根据 1 个字段或另一个字段选择计数 - 条件计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46047303/

相关文章:

mysql - 如何仅在 mySQL 数据库中的行不为空时打印值?

mysql - 查询每个对话的消息计数

mysql - 使用索引优化sql查询

php - 有什么关于 php 代码的想法吗?

PostgreSQL:合并 Count 和 DISTINCT ON

mysql - 在 mySQL 中对多个相同的表求和

MySQL : Query and group by values in same column

php - MySQL查询交叉引用

mysql - 一个查询中的多个条件的多个 COUNT() (MySQL)

MySQL 请求 COUNT 问题