首先,分组函数只能出现在select列表、having子句和group by子句中,尤其注意不能出现在where子句中。如果要限制分组结果,只能使用having子句。
其次,使用分组函数时,出现在selcet列表中的字段,如果只有组函数的字段,可以没有group by子句,如果还有其他的列和表达式,则这些列和表达式,必须出现在group by子句中。
反过来,如果出现在group by子句中的列,没有出现在select列表中,语法上可以,只是结果含义不明确。
分组函数是忽略null值的,如果需要对null加以处理,则需要用NVL函数,
比如AVG(NVL(comm,0)),当comm为null时,则给它赋值0.
其次,使用分组函数时,出现在selcet列表中的字段,如果只有组函数的字段,可以没有group by子句,如果还有其他的列和表达式,则这些列和表达式,必须出现在group by子句中。
反过来,如果出现在group by子句中的列,没有出现在select列表中,语法上可以,只是结果含义不明确。
分组函数是忽略null值的,如果需要对null加以处理,则需要用NVL函数,
比如AVG(NVL(comm,0)),当comm为null时,则给它赋值0.
本文介绍了SQL中分组函数的基本用法,包括其在select列表、having子句和group by子句中的应用。文中强调了分组函数不可用于where子句,并详细解释了如何正确使用group by子句及如何处理NULL值。
1920

被折叠的 条评论
为什么被折叠?



