mysql中GROUP BY结合GROUP_CONCAT的使用

有查询语句如下所示:

select id, type, size, place_id from contents;

查询结果↓:

id  type size place_id 

1   txt    12   100

2   jpg   10   100

3   bmp 15   100  

4   jpg   13   101

5   txt    20   101

 

需求是要统计每个place中content的个数(file_num),文件种类(file_type),总SIZE数(file_size )。

 

于是想到了用来统计的SQL语句如下所示:

SELECT place_id, COUNT(id)  file_num, content_type  file_type, SUM(size)  file_size FROM contents;

查询结果↓:

place_id  file_num  file_type  file_size 

100         3             txt            37

101         2             jpg           33

 

从上述查询记过可以得知file_type的统计有问题:

例如,

对于place 100来说,其中有三种type分别是txt、jpg、bmp,

但是上述语句只能统计出一种,这时就要用到GROUP_CONCAT函数了呢。。。

 

更改SQL文为:

SELECT place_id, COUNT(id)  file_num, GROUP_CONCAT(content_type SEPARATOR "&")  file_type, SUM(size)  file_size FROM contents;

查询结果↓:

place_id  file_num  file_type              file_size 

100         3             txt&jpg&bmp       37

101         2             jpg&txt                33

 

这样的结果就对了!

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值