#mysql可执行,oracle报错
SELECT 字段1,字段2,字段3,字段4,字段5,sum(字段6) x,case 字段1 when 条件1 then1
					 							  		 when 条件2 then2 
WHERE 筛选条件
GROUP BY 字段2,字段3
order by 字段4,x,case 字段名y when 条件1 then1
					         when 条件2 then2 

orcale的group by里面需要包含所有的字段包括case when条件元素(除sum类)

--oracle可执行
SELECT 字段1,字段2,字段3,字段4,字段5,sum(字段6) x,case 字段1 when 条件1 then1
					 							  		 when 条件2 then2 
				 							 end--字段1的case when列与字段1的列只用在group by里面加一次
WHERE 筛选条件
GROUP BY 字段2,字段3
		----------------修改分界线----------------
		--case判断的字段如果已经存在不用反复添加在group by里面,即使起了新名字;
		--如果字段x不曾出现过,需要整段添加到。
		 ,字段1,字段4,字段5,case 字段y when 条件1 then1
					       			  when 条件2 then2 
		----------------修改分界线----------------
order by 字段4,x,case 字段y when 条件1 then1
					         when 条件2 then2 
				 end--字段y未出现,需添加在group by里面

原理解释:因为聚合函数通过作用于一组数据而只返回一个单个值,因此,在SELECT语句中出现的元素要么为一个聚合函数的输入值,要么为GROUP BY语句的参数,否则会出错。
(人话版:因为groupby把字段同一id的聚合函数通过作用于一组相同数据(比如一个同学的名字)而只返回一个单个值(所有),因此,在SELECT语句中出现的元素要么为一个聚合函数的输入值,要么为GROUP BY语句的参数,否则会出错。

https://www.cnblogs.com/luxd/p/6383014.html

#mysql可执行,oracle报错SELECT 字段1,字段2,字段3,字段4,字段5,sum(a-b) x,case 字段名x when 条件1 then 值1 when 条件2 then 值2 endWHERE 筛选条件GROUP BY 字段2,字段3order by 字段4,x,case 字段名y when 条件1 t...
使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外) 但一些朋友经常爱把select 列表项的中列忘了写在group by中。于是就出现了以上的错误ORA-00979 不是 GROUP BY 表达式。 select de...
具体的解释,见之前我看的那篇博客:  ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的。  我在介绍使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group...
直接说应该怎么做,至于为什么我不知道, 因为把select 列表项的中列忘了写在group by中。于是就出现了以上的错误ORA-00979 不是GROUP BY 表达式。 所以我们要把在select 列表项的字段写在group by中 这里参考一下别人SQL代码样例: select deptno,job,avg(sal) from emp group by deptno; ERROR 位于第 1 行: ORA-00979: 不是 GROUP BY 表达式 这里就是因为在select 列表像
SELECT TO_DATE(EVENTTIME) as dateTime ,OPNO as siteNum, count(*) as totalCapacity FROM tblusercapacity <where> <if test="date != null"&g...
oracle数据库 分组函数与group by正确用法详解与详细解释 1.查询时同时查询了分组函数列和非分组函数列就需要使用group by,但是仅仅查询分组函数列可以不结合group by使用。 SQL> select TABLESPACE_NAME,sum(user_bytes/1024/1024) from dba_data_files; ERROR at line 1: 对于常见在select中出现的列没有全部出现在group by的后面这种原因就不再进行细说了,现说下我碰到的比较特殊的情况。在Oracle的11.2.0.1.0版本上执行下面语句报ORA-00979不是GROUP BY表达式错误 select substr(a.empno,1,4) as year,count(1) from (select * from scott.emp) a gr...
PHP Warning: PHP Startup: Unable to load dynamic library 'gd2' (tried: /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/gd2 (/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/gd2: cannot open shared object file: No such file or directory), /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/gd2.so (/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/gd2.so: cannot open shared object file: No such file or directory)) in Unknown on line 0