有如下的用户信息表 user_profile
:
首先,检索复旦大学用户中,最高的 gpa
值是多少?
SELECT MAX(gpa)
FROM user_profile
WHERE university = '复旦大学';
检索结果:
除了使用聚合函数 MAX
也可以借助排序和 LIMIT
关键字实现:
SELECT gpa
FROM user_profile
WHERE university = '复旦大学'
ORDER BY gpa DESC
LIMIT 1;
接下来是另外几个常用的聚合函数 COUNT
和 AVG
的使用示例。下面的 SQL 检索所有男性用户的人数以及 gpa
的平均值。
SELECT
COUNT(*) AS male_num,
ROUND(AVG(gpa),1) AS avg_gpa
FROM
user_profile
WHERE
gender = 'male';
其中 ROUND
对聚合结果四舍五入,保留 1 位小数。检索结果如下:
此外,也可以通过分组聚合进行检索,根据 gender
分组后,所有用户被分为男性和女性两个组,HAVING
关键字指出分组的过滤条件,即只保留 male
分组。
SQL 实现如下:
SELECT
COUNT(*) AS male_num,
ROUND(AVG(gpa),1) AS avg_gpa
FROM
user_profile
GROUP BY
gender
HAVING
gender = 'male';
检索结果同上,这里不再复述。
网友评论