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