(1)order by语句:(默认升序)
SELECT
column_1,
column_2,
column_3,
...
FROM
table_name
ORDER BY
column_1 [ASC | DESC] [NULLS FIRST | NULLS LAST],
column_1 [ASC | DESC] [NULLS FIRST | NULLS LAST],
要按列排序结果集,可以在ORDER BY子句之后列出该列。
按照列名是一个排序顺序,可以是:
- ASC表示按升序排序
- DESC表示按降序排序
默认情况下,无论是否指定ASC,ORDER BY子句都按升序对行进行排序。如果要按降序对行进行排序,请明确使用DESC。
NULLS FIRST在非NULL值之前放置NULL值,NULLS LAST在非NULL值之后放置NULL值。
ORDER BY子句可以按多列对数据进行排序,每列可能有不同的排序顺序。
请注意,ORDER BY子句总是SELECT语句中的最后一个子句。
(2)GROUP BY
分组查询,需要配合聚合函数。根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。
常用聚合函数
- count() 计数
- sum() 求和
- avg() 平均数
- max() 最大值
- min() 最小值
语法如下
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
例子,以Oracle自带用户Scott下的EMP表做练习:
查询每个部门的人数:
查询前两个部门的平均工资:
(3)having
对分组结果进行筛选。
例子:查询每个部门里最低工资大于900的人数。