当前位置: 首页 > article >正文

sql刷题常用函数

ROW_NUMBER()

ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) 是一个窗口函数,用于生成每个分组内的唯一行号。这个函数非常适合在分组数据中进行排序,并为每一行分配一个序号。下面是对你的具体示例的详细解释:

ROW_NUMBER() OVER (
    PARTITION BY MONTH(p.fdate)
    ORDER BY COUNT(p.user_id) DESC, s.song_id
) AS song_rank

详细解释:

  1. ROW_NUMBER():

    • 这是一个窗口函数,用于为查询结果中的每一行生成一个唯一的行号。
  2. OVER (...):

    • 这是窗口函数的语法部分,用于指定如何计算行号。它可以包括 PARTITION BY 和 ORDER BY 子句。
  3. PARTITION BY MONTH(p.fdate):

    • 这个子句指定了如何将数据分组。PARTITION BY 将结果集分成不同的分区或组,在每个分区内,ROW_NUMBER() 函数将计算行号。
    • 在你的示例中,MONTH(p.fdate) 意味着数据将按月份分组。这意味着每个月的数据都会被单独处理,ROW_NUMBER() 函数会在每个月的数据中生成行号。
  4. ORDER BY COUNT(p.user_id) DESC, s.song_id:

    • 这个子句定义了在每个分区内如何对行进行排序,然后为每行分配行号。
    • COUNT(p.user_id) DESC:首先按 COUNT(p.user_id) 的降序进行排序。COUNT(p.user_id) 是每首歌曲在特定月份的播放次数,这样播放次数最多的歌曲会排在前面。
    • s.song_id:在播放次数相同的情况下,按 s.song_id 进行升序排序。这里 s.song_id 作为次级排序条件,确保每个歌曲在播放次数相同的情况下有一个唯一的排序。
  5. AS song_rank:

    • AS 用于为计算出的行号分配一个别名。在你的查询中,这个别名是 song_rank。它表示每首歌在每个月中的排名。

CONCAT()

  1. CONCAT(ROUND(COUNT(l.overdue_days) / COUNT(*) * 100, 1), '%') AS overdue_ratio

    • COUNT(l.overdue_days):计算每个支付能力等级中有逾期记录的贷款数。
    • COUNT(*):计算每个支付能力等级中所有贷款的总数。
    • COUNT(l.overdue_days) / COUNT(*):计算逾期贷款占所有贷款的比例。
    • * 100:将比例转换为百分比。
    • ROUND(..., 1):将计算出的百分比四舍五入到小数点后一位。
    • CONCAT(..., '%'):将四舍五入后的百分比与 % 符号连接起来,生成如 25.5% 的格式。
    • AS overdue_ratio:给计算出的百分比结果指定别名 overdue_ratio

http://www.kler.cn/news/309781.html

相关文章:

  • 微博计算架构实战
  • 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树
  • 【车载开发系列】ParaSoft单元测试环境配置(三)
  • 【原创】java+springboot+mysql高校社团网系统设计与实现
  • 【数据库】MySQL-基础篇-多表查询
  • 赋值运算符
  • 用Kimi输出流程图
  • MybatisPlus的一点了解
  • 深入Redis:分布式锁
  • [语言月赛 202408] 因友情而终结
  • 深圳国际VR/AR博览会圆满落下帷幕
  • 【C++ Primer Plus习题】16.8
  • yaml注入配置文件
  • 【ZYNQ】OV5640 图像采集与显示
  • 【Linux】权限理解(超详细)
  • 【与C++的邂逅】--- C++的IO流
  • sqlgun靶场训练
  • 【机器学习】--- 自然语言推理(NLI)
  • SPI软件模拟读写W25Q64
  • Qt常用控件——QLCDNumber
  • scantf
  • Linux--守护进程与会话
  • Java 中 List 常用类和数据结构详解及案例示范
  • 基于python+django+vue的外卖管理系统
  • java循环遍历树状结构对象并转换成另外树状结构对象
  • 6.安卓逆向-安卓开发基础adb工具
  • 学习贵在善假于物
  • 什么是科技与艺术相结合的异形创意圆形(饼/盘)LED显示屏
  • YooAsset基础操作及热更
  • 自监督的主要学习方法