一、group by
select column1,column2 from table1, table2注意:
where conditions
group by column1 ,column2
order by column1 , column2
(1)group by 与 order by相同之处在于都是对数据进行排序,但是order by 子句专门用于对查询到的数据进行排序,group by 子句也把查询得到的数据排序为适当分组的数据(2)group by子句实现排序的区别与缺点:
a、所有被选中的、非汇总函数的字段必须列在group by子句里。
b、除非需要使用汇总函数,否则使用group by子句进行排序通常是没有必要的。
二、cube和rollup语句
三、having子句
功能:设置group by子句形成分组的条件。
select
from
where
group by
having
order by
必须跟在group by子句之后、order by 子句之前。
例如:
(1)除了greenwood 之外所有城市的平均小时工资和薪水。输出结果按city进行分组,但只显示平均薪水超过20000的分组,并且按照每个城市的平均薪水进行排序。
select city ,avg( pay_rate ),avg( salary )
from emp_pay_tmp
where city != 'greenwood'
group by city
having avg( salary ) > 20000
order by 3;