having 可以设置常数 聚合函数 聚合键为条件 举例说明
时间: 2024-03-17 19:47:20 浏览: 71
好的,假设我们有一个学生成绩表"student_scores",包含学生姓名、科目和成绩三个字段。我们希望统计每个学生的总成绩,并找出总成绩大于300分的学生,可以使用以下SQL语句:
```
SELECT name, SUM(score) as total_score
FROM student_scores
GROUP BY name
HAVING total_score > 300;
```
这里使用了"SUM"聚合函数来计算每个学生的总成绩,"GROUP BY"将结果按照姓名分组,"HAVING"筛选出总成绩大于300分的学生。
如果我们想找出每个科目的平均成绩,并且只返回平均成绩大于80分的科目,可以使用以下SQL语句:
```
SELECT subject, AVG(score) as avg_score
FROM student_scores
GROUP BY subject
HAVING avg_score > 80;
```
这里使用了"AVG"聚合函数来计算每个科目的平均成绩,"GROUP BY"将结果按照科目分组,"HAVING"筛选出平均成绩大于80分的科目。
如果我们想找出每个学生的总成绩,并且只返回总成绩大于300分且科目为数学的学生,可以使用以下SQL语句:
```
SELECT name, SUM(score) as total_score
FROM student_scores
GROUP BY name
HAVING total_score > 300 AND subject = 'math';
```
这里使用了"SUM"聚合函数来计算每个学生的总成绩,"GROUP BY"将结果按照姓名分组,"HAVING"筛选出总成绩大于300分且科目为数学的学生。注意,这里的"subject"是一个聚合键,需要在"GROUP BY"中出现。
阅读全文