我在填写此表单时,表 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/