mysql分组查询(group by)

时间:2021-06-25 09:53:40

mysql分组查询的基本语法为

GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP]

基本查询如下

select age,group_concat(name) from user group by age
查询记过如下
Array(    [0] => Array        (            [age] => 10            [group_concat(name)] => lili,jim        )    [1] => Array        (            [age] => 15            [group_concat(name)] => john,cate        ))
1.如果对查询的字段不使用group_contact()函数,只会显示该组的第一条记录,如上面的age字段。

其他集合函数还包括如下

    COUNT()函数:统计记录的条数。
    MAX()函数:查询字段的最大值。
    MIN()函数:查询字段的最小值。
    SUM()函数:计算字段的值的总和。
    AVG()函数:计算字段的值的平均值。

2.也可以按照多个字段进行分组,比如group by age,sex

3.可以使用having 条件表达式选择符合条件的组,having不同于where,它是作用于分组后的记录。

使用如下

select age,group_concat(name) from user group by age having count(age)>1
4.使用width rollup,查询结果会在所有记录的最后加上一条记录。这条记录是查询的所有结果记录。