发布网友 发布时间:2022-04-07 23:47
共3个回答
懂视网 时间:2022-04-08 04:08
分组函数
在分组函数中,如果有一个查找项分组,其他项必须也分组,比如下面的语句会报错,因为sal分组了,而ename没有分组:
1.显示工资最高的员工:
2.显示所有员工的平均工资:
2.1使用系统函数:
2.2自定义计算:
3.显示工资高于平均工资的员工信息:
对查询结果进行分组统计:
4.查询每个部门的最高工资和平均工资:
5.显示每个部门的每种岗位的平均工资与最高工资:
6.显示平均工资低于2000的部门号和它的平均工资:
对数据分组的总结
1 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)
2 如果在select语句中同时包含有group by, having, order by 那么它们的顺序是group by, having, order by
3 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在group by 子句中,否则就会出错。
如SELECT deptno, AVG(sal), MAX(sal) FROM emp GROUP by deptno HAVING AVG(sal) < 2000;
这里deptno就一定要出现在group by 中
oracle分组查询
标签:oracle 数据查询 分组查询
热心网友 时间:2022-04-08 01:16
WITH tmp AS
(select '张一' as names, '2014年1月' as dates, '90' as sorcs from al union
select '张四' as names, '2014年1月' as dates, '66' as sorcs from al union
select '张一' as names, '2014年2月' as dates, '84' as sorcs from al union
select '张二' as names, '2014年2月' as dates, '75' as sorcs from al union
select '张四' as names, '2014年2月' as dates, '48' as sorcs from al union
select '张三' as names, '2014年3月' as dates, '75' as sorcs from al union
select '张四' as names, '2014年3月' as dates, '96' as sorcs from al union
select '张一' as names, '2014年4月' as dates, '94' as sorcs from al union
select '张四' as names, '2014年4月' as dates, '75' as sorcs from al union
select '张三' as names, '2014年5月' as dates, '84' as sorcs from al union
select '张四' as names, '2014年6月' as dates, '75' as sorcs from al union
select '张二' as names, '2014年7月' as dates, '64' as sorcs from al union
select '张一' as names, '2014年8月' as dates, '77' as sorcs from al )
SELECT names,
SUM(CASE WHEN dates ='2014年1月' THEN sorcs END ) AS "2014年1月" ,
SUM(CASE WHEN dates ='2014年2月' THEN sorcs END ) AS "2014年2月",
SUM(CASE WHEN dates ='2014年3月' THEN sorcs END ) AS "2014年3月"
FROM tmp
GROUP BY names
你这个是要行列互换吧?
热心网友 时间:2022-04-08 02:34
这个不是分组查询,你这个要做的事列转行