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

SQL141 试卷完成数同比2020年的增长率及排名变化

SQL141 试卷完成数同比2020年的增长率及排名变化

withtemp as (selectexam_id,tag,date(submit_time) as submit_timefromexamination_infoleft join exam_record using (exam_id)wheresubmit_time is not null),2021_temp as (selecttag,count(*) as exam_cnt_21,rank() over (order bycount(*) desc) as exam_cnt_rank_21fromtempwhereyear(submit_time) = 2021and (month(submit_time) between 1 and 6)group bytag),2020_temp as (selecttag,count(*) as exam_cnt_20,rank() over (order bycount(*) desc) as exam_cnt_rank_20fromtempwhereyear(submit_time) = 2020and (month(submit_time) between 1 and 6)group bytag)
selecttag,exam_cnt_20,exam_cnt_21,concat(round((exam_cnt_21 - exam_cnt_20) / exam_cnt_20 * 100,1),"%") as growth_rate,exam_cnt_rank_20,exam_cnt_rank_21,-- 修改为使用SIGNED转换,避免无符号整数减法问题CAST(exam_cnt_rank_21 AS SIGNED) - CAST(exam_cnt_rank_20 AS SIGNED) AS rank_delta
from2020_tempjoin 2021_temp using (tag)
order bygrowth_rate desc,exam_cnt_rank_21 desc

说明

因为在计算rank_delta时,2021年的排名可能小于2020年的排名,导致无符号整数减法结果为负数,超出了BIGINT UNSIGNED的范围。

在MySQL中,当使用无符号整数(UNSIGNED)进行减法运算时,如果结果为负数,会报错"BIGINT UNSIGNED value is out of range"

http://www.dtcms.com/a/277726.html

相关文章:

  • 《棒球知识科普》体育健将有什么特点·棒球1号位
  • SQL155 大小写混乱时的筛选统计
  • C++进阶-二叉搜索树(二叉排序树)
  • Java机密计算实战:Intel SGX与Spring机密数据保护
  • 在Linux服务器上通过screen挂起程序,以及利用reptyr从终端剥夺程序的控制权转交screen的方法
  • 【Python类管理】装饰器@的实际用法和查询
  • QML 自定义Model基础之QAbstractListModel
  • 流程管理系统中,授权临时节点的技术方案
  • RabbitMQ队列的选择
  • Qt窗口:QToolBar、QStatusBar、QDockWidget、QDialog
  • HTML 段落标签
  • 深度剖析:std::vector 内存机制与 push_back 扩容策略
  • Mysql 笔记
  • 深度学习图像分类数据集—水质量识别分类
  • 单例模式详解:确保一个类只有一个实例
  • 代码随想录算法训练营day29
  • 常见Spring事务失效原理解析
  • 力扣面试150题--单词搜索
  • Java面试基础:面向对象(2)
  • CCPD 车牌数据集提取标注,并转为标准 YOLO 格式
  • C++--红黑树封装实现set和map
  • duckdb和pyarrow读写arrow格式的方法
  • H3C无线旁挂2层直接转发组网模拟实验
  • opendrive文件的格式
  • 专业PPT图片提取工具,操作简单
  • 【Python练习】041. 编写一个函数,检查一个二叉树是否是平衡二叉树
  • 大数据在UI前端的应用深化研究:用户行为数据的情感分析
  • MySQL实操:将Word表格数据导入MySQL表
  • python学习——Matplotlib库的基础
  • 4. MyISAM vs InnoDB:深入解析MySQL两大存储引擎