SQL最常用的函数

1、聚合函数

它对其应用的每个行集返回一个值。

  1. COUNT(*) 返回表中的行数(包括有NULL值的列)。
  2. COUNT(表达式) 返回表达式中非NULL值的数量。可用于数字和字符列。
  3. AVG(表达式) 返回表达式中所有的平均值。仅用于数字列并自动忽略NULL值。
  4. MAX(表达式) 返回表达式中的最大值,忽略NULL值。可用于数字、字符和日期时间列。
  5. MIN(表达式) 返回表达式中的最小值,忽略NULL值。可用于数字、字符和日期时间列。
  6. SUM(表达式) 返回表达式中所有的总和,忽略NULL值。仅用于数字列。

2、数字函数

  • ABS(num_expr) 返回数值表达式的绝对值。
  • CEILING(num_expr) 返回大于或等于数值表达式的最小整数。
  • FLOOR(num_expr) 返回小于或等于数值表达式的最大整数。

3、日期函数

  1. current_date() 当前系统日期:格式:"yyyy-MM-dd"
  2. current_timestamp() 当前系统时间戳:格式:"yyyy-MM-dd HH:mm:ss.ms"
  3. unix_timestamp() 当前系统时间戳:格式:距离1970年1月1日0点的秒数;简单说:是将一个字符串,变为了一个时间戳
  4. from_unixtime()时间戳转日期函数:根据时间戳,指定输出日期的格式如(yyyy/MM/dd)、(yyyy-MM-dd);简单说:是将时间戳变为了一个字符串

    注:from_unixtime 换算的时间出来之后,和真实的时间相差 8 小时,所以要+8 小时的秒值from_unixtime(1724722412+8*3600)
  5. datediff() 计算时间差函数(可出现负值):例:select datediff('2024-01-01','2024-02-01')
  6. year(年份)、month(月份)、day(天数)、hour(小时数)、minute(分钟数)、second(秒数)  日期时间分量函数
  7. date_add()日期-加、date_sub()日期-减

4、字符串函数

  • SUBSTR("要从中提取子字符串的原始字符串",子字符串开始的位置,要提取的子字符串的长度)

5、开窗函数

  1. ROW_NUMBER(): 为每一行分配一个唯一的整数值,通常用于对结果集进行排序或分页。
  2. RANK(): 计算每一行的排名,如果有相同的值,则会跳过相同的排名并产生相同的排名值。
  3. DENSE_RANK(): 类似于RANK()函数,但是不会跳过相同的排名,而是按照连续的顺序分配排名值。
  4. NTILE(n): 将结果集分成n个相等大小的桶,并为每一行分配一个对应的桶号。
  5. LAG(column, offset): 获取当前行之前偏移量为offset的行的某个列的值。可以用于计算当前行与前一行的差异。
  6. LEAD(column, offset): 获取当前行之后偏移量为offset的行的某个列的值。可以用于计算当前行与后一行的差异。
  7. PARTITION BY:将数据集分成若干组,每个组是一个窗口。不使用PARTITION BY时,默认整个数据集是一个窗口。
  8. ORDER BY:在每个窗口内定义行的排序方式。如果不指定ORDER BY,则窗口内的行是无序的。
  • 这些聚合函数可以与开窗函数一起使用:SUM(), AVG(), MIN(), MAX()
  • DISTINCT 是 SQL 中的一个关键字,用于从表中选择唯一的记录。它可以消除重复的行,只返回唯一的值。
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值