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

我环顾四周但找不到答案我需要一个查询,根据同一字段中的值返回2组值作为字段名称例子我有一张桌子NAME, VALUE name1, 2 name1, 2 name1, 3 name1, 4 name2, 2 name2, 2 name2, 3 name2, 4现在我想在一个组中对值2和3进行计数和分组,在另一个组中对值4进行分

我环顾四周但找不到答案
我需要一个查询,根据同一字段中的值返回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

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部