Oracle数据库的应用-转换函数和聚集函数

163 阅读2分钟

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。

1. 转换函数 (将值从一种类型转换成另外一种类型,或者从一种格式转换为另外一种格式)

  • TO_CHAR(x [,  format])  将x转化为字符串。 format为转换的格式,可以为数字格式或日期格式

★ 数字格式  SELECT TO_CHAR(12345.67, '99,999.99') FROM dual;

☆ 9 确定宽度,前导补空,后导补0

☆ 0 确定宽度,前后导都补0

☆ $ 美元

☆ L 当地的货币符号

☆ . 小数点

☆ ,分隔符

★ 日期格式  select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

☆ q 季度1-4

☆ ww 年里面的第几周

☆ 当前时间减去7分钟的时间  sysdate - interval '7' MINUTE

☆ 当前时间减去7小时的时间  sysdate - interval '7' hour

☆ 当前时间减去7天的时间     sysdate - interval '7' day

☆ 当前时间减去7月的时间     sysdate - interval '7' month

☆ 当前时间减去7年的时间     sysdate - interval '7' year

☆ 时间间隔乘以一个数字       sysdate - 8*interval '7' hour

  • TO_DATE(x [,format]) 将x字符串转换为日期

规则同TO_CHAR

☆ TO_DATE('2012-3-15','YYYY-MM-DD‘)

  • TO_NUMBER(x [,  format]) 将x转换为数字。可以指定format格式

☆ TO_NUMBER('970.13') + 25.5

☆ TO_NUMBER('12,345.67,12,345.67', '99,999.99') ,  TO_NUMBER('¥12,345.67', 'L99,999.99')

☆ TO_NUMBER(to_char(sysdate, 'yyyy'))

  • CAST(x  AS  type) 将x转换为指定的兼容的数据库类型

☆ CAST(12345.67 AS VARCHAR2(10) )

☆ CAST('05-7月-07' AS DATE)

☆ CAST(12345.678 AS NUMBER(10,2))

2. 聚集函数(亦称分组函数、聚合函数。聚集函数可以对行集进行操作,并且为每组给出一个结果)

格式:select 组函数(表达式)/表达式 from 子句 group by 表达式

注意:非group by 中出现的表达式 如果要出现在select当中,必须使用组函数

★ 聚集函数可以使用任何有效的表达式

★ NULL值在聚集函数中将被忽略

★ 可以在聚集函数中使用DISTINCT关键字,排除重复值

★ 筛选条件如果使用了组函数,则应使用having筛选

  • AVG(x):返回x的平均值
  • COUNT(x):返回统计的行数
  • MAX(x):返回x的最大值
  • MIN(x):返回x的最小值
  • SUM(x):返回x的总计值
  • MEDIAN(x):返回中间值
  • STDDEV(x):返回标准偏差
  • VARIANCE(x):返回x的方差

聚集函数的分组应用,有时需要对表中的行进行分组,然后统计每组的信息:

例如:

  1. 统计学生的人数,按性别进行统计,可以使用GROUP BY进行分组  SELECT sex  FROM student GROUP BY sex

  2. 统计每个导师带的所有学生的每个科目的平均/最高/最低/总成绩,并按对应成绩排序,并且只要平均成绩大于60分的记录

  3. 统计每个商品分类下的所有商品的每个月份的平均/最高/最低/总销量,并按对应销量排序,并且只要平均销量低于10000件的记录

  4. 统计每个员工的每年里哪个一月工资最低(如果有不同的月都是最低工资,则取离当前时间较近的一个月),并且显示此月工资是多少(每月工资不固定)