avg能用在case when 里面嘛
时间: 2023-10-31 12:58:38 浏览: 72
可以的,AVG函数可以在CASE WHEN语句中使用。CASE WHEN语句用于根据给定的条件选择不同的结果。AVG函数用于计算给定列的平均值。以下是一个示例:
SELECT
CASE WHEN column1 > 10 THEN AVG(column2)
WHEN column1 <= 10 THEN AVG(column3)
END
FROM table_name;
在上述示例中,根据column1的值,选择计算column2或column3的平均值。请注意,CASE WHEN语句中的每个条件后面都需要有一个结果,并且这些结果的数据类型应该一致。
相关问题
group by 和case when一起时候 ,case when就要加sum或者avg吗
当GROUP BY和CASE WHEN一起使用时,是否需要在CASE WHEN语句中使用聚合函数(如SUM、AVG)取决于具体的需求。如果需要按条件分组后,对每个分组进行聚合操作,那么就需要在CASE WHEN语句中使用聚合函数。例如:
```
SELECT gender,
SUM(CASE WHEN age > 18 THEN 1 ELSE 0 END) AS adult_count,
SUM(CASE WHEN age <= 18 THEN 1 ELSE 0 END) AS child_count
FROM student
GROUP BY gender;
```
这个查询语句中,根据学生的性别进行分组,然后统计每个分组中成年人和未成年人的人数。在这个场景中,需要在CASE WHEN语句中使用SUM函数来对每个分组进行计数。
但是,如果仅仅是需要根据条件返回不同的值,而不需要对分组进行聚合操作,那么就不需要在CASE WHEN语句中使用聚合函数。例如:
```
SELECT name,
CASE WHEN age > 18 THEN '成年人' ELSE '未成年人' END AS age_group
FROM student;
```
这个查询语句中,根据学生的年龄是否大于18岁返回不同的值,不需要在CASE WHEN语句中使用聚合函数。
case when 是聚合函数吗
根据提供的引用内容,可以得出结论:case when不是聚合函数。聚合函数是一类特殊的函数,用于对多行数据进行计算并返回一个结果值,常见的聚合函数包括count、sum、avg等。而case when是一种条件判断语句,用于根据条件的不同返回不同的值,它并不对多行数据进行计算。因此,case when不属于聚合函数的范畴。