有查询语句如下所示:
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
这样的结果就对了!
本文介绍了一种使用SQL进行数据统计的方法,特别是如何利用GROUP_CONCAT函数解决文件类型汇总的问题。通过具体例子展示了如何统计不同地点的内容数量、文件类型及总大小。
1192

被折叠的 条评论
为什么被折叠?



