Sql入门--------数据排序与分组

时间:2022-02-05 02:44:52

一、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;