有查询语句如下所示:
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
这样的结果就对了!