oracle 不是单组分组函数 什么叫不是单组分组函数?
什么叫不是单组分组函数?
它不是一组分组函数。一般情况下,在数据库中执行查询语句时,不定期使用sum、AVG、count等聚合函数,会报错。
例如,我们需要计算每个学生的最终分数:从成绩表中选择姓名、总和(单科分数)和总分。这样,将报告错误。必须使用group by来声明要用作分组计算基础的字段。正确的写作方法是:从成绩表中选择姓名、总和(单科成绩)作为总分,按姓名分组。
现在名字不够,还要加班级,所以写:从成绩表中选择班级、姓名、总和(单科成绩)作为总分,按姓名分组,实际又报错了。
这是因为类只放在查询列中,并且没有用group by声明。所以它应该是:从成绩表中选择班级,姓名,和作为总分,按班级分组,姓名。
不是单组分组函数?
选择deptno,max(count(*)from EMP group by deptno,其中max(count(*)相当于分组两次,那么对应Select中的其他列也需要分组两次,例如:Select max(deptno),max(count(*)from EMP group by deptno原因很简单。SQL语言是面向集合的。如果计算max(count(*),deptno对应哪一个?
oracle ORA-00937: 非单组分组函数?
这种错误报告通常使用聚合函数,如count和sum,但不使用groupby来声明分组模式。
例如,有一个学生表。字段包括:班级编号、学生编号和学生姓名。现在我们需要知道每个班有多少人。如果查询语句是这样的:
从学生表中选择班级编号,计数(学生编号)
,我们必须报告一个错误。我们必须告诉数据库根据哪个字段进行分组。正确的书写方法是:
选择班级编号,从学生表中按班级编号分组计数(学生编号)
oracle 不是单组分组函数 不是单组分组函数怎么解决 sql报不是单组分组函数
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。