根据1个字段或其他字段选择计数 - 条件计数

时间:2017-09-05 05:01:25

标签: mysql mysqli 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

我已经阅读了很多内容,但找不到确切的解决方案。我想到的唯一解决方案是内部查询。这将增加我的知识,也将符合我的目的。非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

我不能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