SQL刷题日志(day2)

1、timestampdiff:计算时间间隔

sql 复制代码
timestampdiff(unit,start_date,end_date)

参数说明:

  • unit:返回的时间单位,如minute,hour等
  • start_date:开始日期
  • end_date:结束日期

2、dense_rank():对数据进行排名

sql 复制代码
dense_rank() over (partition by column order by column)

参数说明:

  • partition by column:可选参数,用于定义如何将结果集划分为不同的组。每个组内的行将独立进行排名。
  • order by column:必需参数,用于定义窗口函数内部的排序规则

!!!与row_number()联系与区别:

联系:

  • 两者都是窗口函数,可以在不改变原始数据集的情况下,为每一行生成一个序号。
  • 都可以使用 OVER() 子句来定义窗口的排序规则和分区。
  • 都可以在查询结果中为每一行生成一个唯一的标识符,用于进一步的分析或操作。

区别:

  • dense_rank():为每一行分配一个排名,如果行的值相同,它们将获得相同的排名
  • row_number():为每一行分配一个唯一的连续整数,即使某些行的值相同,它们的序号也会不同

3、ifnull():为缺失数据赋值

sql 复制代码
ifnull(column_name,0)

参数说明:column_name:若值为null,则置为0

4、coalesce():为缺失数据指定默认值

sql 复制代码
coalesce(column_name,0)--将Null值视为0

5、floor():向下取整

sql 复制代码
floor(number):取小于等于数值number的最小整数(向下取整)
--如:floor(12.45)返回12

拓展:

  • ceiling(number):取大于等于数值n的最小整数(向上取整)
  • round(number):四舍五入到指定的小数位数。如果没有指定小数位数,则默认四舍五入到整数。
  • truncate(number,2):截断数值到指定的小数位数,不进行四舍五入(如truncate(123.456, 2) 返回 123.45(截断到小数点后两位)
  • cast(.. as signed):将数值转换为符号整数
相关推荐
Lethehong4 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
Web极客码4 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
cspttty5 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
roman_日积跬步-终至千里6 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱6 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
XLYcmy7 小时前
《数字经济赋能城市低碳治理的路径研究检索报告》审阅与修改指导意见——基于完整检索报告体例的完整性诊断、学术规范核查与方法论纠偏 上
数据库·ai·chatgpt·文心一言·检索·知网·豆包
泡海椒7 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
ss2737 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
电商API_180079052477 小时前
反向海淘多币种结算:汇率该在哪个时点被冻结
java·开发语言·数据库·跨境电商·1688 api
搞AI的金鱼8 小时前
skill agent workflow的区别
数据库