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

横扫SQL面试——中位数问题

横扫SQL面试

在这里插入图片描述

📌中位数问题

请使用一段 SQL 语句返回以下一组数中的中位数。给定的数据为:1, 2, 44, 8, 34, 23, 42, 11 。

中位数(Median)又称中值,是统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群的一般水平。

限制条件
不能使用数据库中的中位数系统函数。


核心思路:升序 + 降序 🎈🎈🎈🎈🎈🎈🎈

num
1
2
44
8
34
23
42
11

生成行号后的结果 (ordered 表)✅✅✅
numasc_rn (升序行号)desc_rn (降序行号)
118
227
836
1145
2354
3463
4272
4481
  • asc_rn 是按 num 升序排列后的行号(1 最小,8 最大)
  • desc_rn 是按 num 降序排列后的行号(1 最大,8 最小)

筛选中间行(满足 abs(asc_rn - desc_rn) <= 1 的行)✅✅✅
numasc_rndesc_rn行号差 (asc_rn - desc_rn)
1145-1
2354+1
  • 总共有 8 行数据(偶数个),中位数为中间两个数(第4和第5小的数)的平均值
  • asc_rndesc_rn 的差为 ±1 时,对应中间两个数

select avg(num) as median from ...(11 + 23) / 2 = 17
median
17

在这里插入图片描述

Tips:

  • 奇数个数据的中位数是行号相等的那一行(asc_rn = desc_rn)。

  • 不需要计算平均值(因为只有一行)。

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

相关文章:

  • git tag
  • Linux 中CIFS和NFS使用说明
  • MCP学习总结
  • 基于RapidIO接口的DSP+GPU工业AI实时计算解决方案
  • ‘conda‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
  • 【YOLOv8】YOLOv8改进系列(12)----替换主干网络之StarNet
  • 系统安全——文件监控-FileMonitor
  • 数据在内存中存储(C语言)
  • 杂篇-行业分类一二-2(通、专用设备制造,汽车制造)
  • (done) MIT6.824 Lecture 02 - RPC and Threads
  • stm32:sg90 和 mg90s舵机学习
  • Python----计算机视觉处理(Opencv:道路检测之提取车道线)
  • 好玩有趣的github开源项目分享(持续更新)
  • 【MySQL基础】 JSON函数入门
  • 代码随想录-动态规划18
  • 如何学习C++以及C++的宏观认知
  • AI:机器学习模型-线性回归
  • 清华大学:网络大模型NetGPT研究进展(2025)
  • 深入解析JavaScript混淆加密与Python逆向调用实战-题八
  • 蓝桥杯-算法基础-For循环
  • [CISSP] [5] 保护资产安全
  • Mybatis 如何自定义缓存?
  • UML 关系探秘:理论与实践双维度剖析
  • Cesium for Unreal 源码编译
  • php开发rest api,哪个框架最好
  • C# 窗体应用(.FET Framework) 与 visionpro 连接
  • Unity Final IK:下一代角色动画与物理交互的技术解析
  • 合合信息TextIn大模型加速器2.0:图表解析能力的横向测评
  • Ansible(1)—— Ansible 概述
  • Spring常见题