聚合函数的用法:
concat 连接单行记录的不同字段, group_concat 连接多行记录的相同字段
count 按条件统计:
SELECT COUNT(*) AS `num` GROUP BY `age` > 24 —— 可能需要建立临时表排序(没有对分组条件建立索引话),效率低
COUNT( CASE WHEN `age` >24 THEN 1 ELSE NULL END )
COUNT(if(pay_status=1, true, NULL))
SELECT COUNT(id>4 or null), COUNT(id=1 OR NULL) from test
group by 分组统计:
SELECT name, address, MAX(age) FROM t GROUP BY name
这段 sql 可能成功,也可能报错。当 name 字段为主键或 unique not null 键,那么它会决定确定该行,因此 address 字段也被确定(依赖于分组字段)。否则的话,address 的值是randomness的,因此会拒绝此次查询。