Oracle下SQL语句练习笔记(2019/6/11)order by group by having

本文深入探讨了SQL中ORDER BY和GROUP BY语句的高级用法,包括按列排序、升序与降序选择、处理NULL值、多列排序、分组查询及聚合函数的应用。同时,介绍了HAVING子句如何对分组结果进行进一步筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(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的人数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值