SQL数据分析常用函数


SQL 有很多可用于计数和计算的内建函数。常用的函数有聚合函数、日期和时间函数、转换函数、窗口函数、字符串函数等。

聚合函数

名称 功能 备注
AVG 平均值
COUNT 非空值的个数
FIRST 第一个记录的值
LAST 最后一个记录的值
MAX() 最大值
MIN 最小值
SUM 总和

日期函数

名称 功能 备注
CURDATE 当前日期
CURTIME 当前时间
NOW 当前日期和时间
UNIX_TIMESTAMP 返回 UNIX 时间戳
DATE_ADD 将两个日期相加
DATE_FORMAT 按照指定格式格式化日期
DATE_SUB 将两个日期相减
DATE 从 date 或 datetime中提取出日期部分
DATEDIFF 将两个日期相减
DAY 某天是当月的第几天 (1-31)
DAYNAME 在用星期中的名称
DAYOFWEEK 某天是该星期的第几天
DAYOFYEAR 某天是一年中的第几天(1-366)
EXTRACT 提取日期中的某一部分
FROM_DAYS 将天数转换为日期
FROM_UNIXTIME 将某个日期格式化为 UNIX 时间戳
LAST_DAY 日期所在月份的最后一天
YEAR 日期参数中的年份
WEEK 参数的星期数
WEEKDAY 日期参数时一个星期中的第几天
MONTH 日期参数的月份
HOUR 提取小时
MINUTE 分钟
SECOND 参数中的秒数 (0-59)
QUARTER 日期参数所在的季度
STR_TO_DATE 将字符串转换为日期数据

转换函数

名称 功能 备注
CAST 数据类型转换CAST (expression AS data_type) 如CAST('12' AS int)

窗口函数

名称 功能
rank () over (partition by A order by B) 计算排序时,如果存在相同位次的记录,则会跳过之后的位次
dense_rank () over (partition by A order by B) 计算排序,即使存在相同位次的记录,也不会跳过之后的位次
row_number () over (partition by A order by B) 赋予唯一的连续位次

字符串函数

名称 功能
CONCAT_WS 连接separator分隔,concat_ws(separator, str1, str2, ...)
CONCAT 连接字符串concat(str1, str2,...)
INSERT 在指定位置插入一个子字符串,直到指定的字符数
LEFT 指定的最左边的字符数的字符串
LOCATE 第一次出现子字符串的位置
LOWER 以小写返回参数
LPAD 返回字符串参数,用指定的字符串向左填充
LTRIM 删除前导空格
REPLACE 替换指定字符串的出现
RIGHT 返回指定的最右边字符数
RPAD 追加字符串指定的次数
RTRIM 删除尾随空格
SUBSTR 返回指定的子字符串
TRIM 删除前导和尾随空格
UPPER 转换为大写
BIT_LENGTH 参数的长度(以位为单位)
CHAR_LENGTH 参数中的字符数
LENGTH 字符串的长度(以字节为单位)