如何获取每个用户名的是、否、其他字段的总值?
我喜欢添加 Total 字段。
SELECT Username,
SUM(CASE WHEN type = 'Yes' THEN 1 ELSE NULL END) as Yes,
SUM(CASE WHEN type = 'No' THEN 1 ELSE NULL END) as No,
SUM(CASE WHEN type = '' THEN 1 ELSE NULL END) as Other
//How to get total of Yes/No/Other
FROM table
WHERE source = 'CompanyName' ";
最高的总计也排在最前面。
最佳答案
使用 0 代替 NULL
,添加缺少的 group by
并使用 COUNT(*)
获取每个组和顺序的总数结果:
SELECT Username,
SUM(CASE WHEN type = 'Yes' THEN 1 ELSE 0 END) as Yes,
SUM(CASE WHEN type = 'No' THEN 1 ELSE 0 END) as No,
SUM(CASE WHEN type = '' THEN 1 ELSE 0 END) as Other,
COUNT(*) as TOTAL
FROM table
WHERE source = 'CompanyName'
group by Username
order by TOTAL desc;
这假定 type
只能是"is"、“否”或“”。
关于mysql - 从每个领域获得总值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187742/