Mysql 根据1个字段或其他字段选择计数-条件计数
填写此表单时,或者更确切地说,插入表时,表管理员id和代表管理员id中有2个字段,其中一个字段将被填写,另一个字段将为0。现在我需要两个经理id或代表经理id相同的计数,表的结构如下:Mysql 根据1个字段或其他字段选择计数-条件计数,mysql,mysqli,count,Mysql,Mysqli,Count,填写此表单时,或者更确切地说,插入表时,表管理员id和代表管理员id中有2个字段,其中一个字段将被填写,另一个字段将为0。现在我需要两个经理id或代表经理id相同的计数,表的结构如下: Table : Feedbacks id manager_id on_behalf_manager_id score created status 1 2 0 20 2017-08-17
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
您尝试过查询了吗?这2和5个计数基于什么?为什么manager
0
没有出现在您的预期输出中?@RootIngenious总数来自manager\u id字段或代表manager\u id字段,因此如果一个字段为零,我们可以取另一个。@TimBiegeleisen实际上,如果manager为零,那么我们需要选择值从代表经理id的另一个字段。同时检查我之前的评论。希望它能让你理解这个场景。谢谢你的帮助!