Mysql 计算不同的值
DB列:个人、政治观点、地区 DB示例:Mysql 计算不同的值,mysql,Mysql,DB列:个人、政治观点、地区 DB示例: person1 liberal Lviv person2 communistic Donetsk person3 liberal Lviv person4 conservative Kyiv person5 conservative Odesa person6 conservative Lviv person7 communistic Kyiv 预期栏目:地区、该地区公民不同政治观点的数量、该地区自由派的数量、该地
person1 liberal Lviv
person2 communistic Donetsk
person3 liberal Lviv
person4 conservative Kyiv
person5 conservative Odesa
person6 conservative Lviv
person7 communistic Kyiv
预期栏目:地区、该地区公民不同政治观点的数量、该地区自由派的数量、该地区保守派的数量。
预期结果:
Lviv 2 2 1
Kyiv 2 0 1
Donetsk 1 0 0
Odesa 1 0 1
很明显,它看起来是这样的:
SELECT region, ?????? FROM table GROUP BY region
我可以选择一些,但是没有简单的方法吗?类似于不同的政治观点或国家政治观点,“自由派”
SELECT region, count(distinct politicalViews),
sum(politicalViews='liberal'), sum(politicalViews='conservative')
FROM table GROUP BY region;
你为什么不想知道有多少共产主义者
你为什么不想知道有多少共产主义者呢?你可以在一个查询中完成这一切,使用聚合和分组查询
请参见您可以使用聚合和分组方式在一个查询中完成这一切
见是的,也谢谢你。我接受了迈克尔的答案,因为他是第一个,但也投票支持了你的答案:是的,也谢谢你。我接受了迈克尔的答案,因为他是第一个,但也投票支持了你的答案:
select region,
COUNT(DISTINCT pol_view) DiffView,
sum(CASE WHEN pol_view = 'liberal' THEN 1 ELSE 0 END) NumberLiberals,
sum(CASE WHEN pol_view = 'conservative' THEN 1 ELSE 0 END) NumberConservatives
from test
group by region