加入收藏 | 设为首页 | 会员中心 | 我要投稿 4S站长网 (https://www.4s3.cn/)- 科技、混合云存储、数据迁移、云上网络、数据计算!
当前位置: 首页 > 数据库 > MySql > 正文

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

发布时间:2020-09-05 16:58:05 所属栏目: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

(编辑:4S站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读