mysql在同一个字段中的多个计数和组值

前端之家收集整理的这篇文章主要介绍了mysql在同一个字段中的多个计数和组值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我环顾四周但找不到答案
我需要一个查询,根据同一字段中的值返回2组值作为字段名称

例子我有一张桌子

NAME,VALUE
name1,2
name1,3
name1,4
name2,2
name2,3
name2,4

现在我想在一个组中对值2和3进行计数和分组,在另一个组中对值4进行分组,因此我的结果看起来像这样

NAME,GRP1_COUNT,GRP2_COUNT
name1,3,1
name2,1

我没有太多运气就尝试了JOIN和UNION
任何帮助赞赏

最佳答案
MysqL没有pivot函数,因此您必须使用带有CASE表达式的聚合函数来转换数据.对于此类计算,您将使用COUNT或SUM:

select name,sum(case when value in (2,3) then 1 else 0 end) GRP1_COUNT,sum(case when value = 4 then 1 else 0 end) GRP2_COUNT
from yourtable
group by name

SQL Fiddle with Demo

COUNT版本:

select name,count(case when value in (2,3) then VALUE end) GRP1_COUNT,count(case when value = 4 then VALUE end) GRP2_COUNT
from yourtable
group by name

SQL Fiddle with Demo

猜你在找的MySQL相关文章