1、timestampdiff:计算时间间隔
timestampdiff(unit,start_date,end_date)
参数说明:
- unit:返回的时间单位,如minute,hour等
- start_date:开始日期
- end_date:结束日期
2、dense_rank():对数据进行排名
dense_rank() over (partition by column order by column)
参数说明:
- partition by column:可选参数,用于定义如何将结果集划分为不同的组。每个组内的行将独立进行排名。
- order by column:必需参数,用于定义窗口函数内部的排序规则
!!!与row_number()联系与区别:
联系:
- 两者都是窗口函数,可以在不改变原始数据集的情况下,为每一行生成一个序号。
- 都可以使用
OVER()
子句来定义窗口的排序规则和分区。 - 都可以在查询结果中为每一行生成一个唯一的标识符,用于进一步的分析或操作。
区别:
- dense_rank():为每一行分配一个排名,如果行的值相同,它们将获得相同的排名
- row_number():为每一行分配一个唯一的连续整数,即使某些行的值相同,它们的序号也会不同
3、ifnull():为缺失数据赋值
ifnull(column_name,0)
参数说明:column_name:若值为null,则置为0
4、coalesce():为缺失数据指定默认值
coalesce(column_name,0)--将Null值视为0
5、floor():向下取整
floor(number):取小于等于数值number的最小整数(向下取整)
--如:floor(12.45)返回12
拓展:
- ceiling(number):
取大于等于数值n的最小整数(向上取整)
round(number):
四舍五入到指定的小数位数。如果没有指定小数位数,则默认四舍五入到整数。- truncate(number,2):截断数值到指定的小数位数,不进行四舍五入(
如truncate(123.456, 2)
返回123.45
(截断到小数点后两位) - cast(.. as signed):将数值转换为符号整数