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

SQL每日一题(4)

前言:第四更 虽然已经全部做完了,这套卷子非常推荐!

根据题目还原出来的原始表

employees表

idnameagestatus
1张三28在岗
2李四35在岗
3王五42在岗
4赵六NULL在岗
5钱七58在岗
6孙八24在岗
7周九31离职
8吴十-5在岗
9郑十一45在岗
10王十二52在岗

 题目1:

查询在岗员工各个年龄段的人数,结果输出年龄段及对应的人数,按年龄段升序排序。
年龄段划分及排序(默认左闭右开):25 岁以下,25 - 30 岁,30 - 35 岁,35 - 40 岁,40 - 45 岁,45 - 50 岁,50 - 55 岁,55 岁及以上,异常情况。
结果输出:年龄段,人数。
备注:异常情况 为空值、异常值等

题目2:

人数第 2 多的年龄段是哪个?对应人数是多少?异常情况有多少人?
填写示例:35 - 40 岁 300 10

题目1:思路 利用case when 语句

SELECTCASEWHEN age < 25 THEN '25岁以下'WHEN age >= 25 AND age < 30 THEN '25-30岁'WHEN age >= 30 AND age < 35 THEN '30-35岁'WHEN age >= 35 AND age < 40 THEN '35-40岁'WHEN age >= 40 AND age < 45 THEN '40-45岁'WHEN age >= 45 AND age < 50 THEN '45-50岁'WHEN age >= 50 AND age < 55 THEN '50-55岁'WHEN age >= 55 THEN '55岁及以上'ELSE '异常情况'END AS age_group,COUNT(*) AS num_people
FROM employees
GROUP BY age_group  -- 使用列别名分组
ORDER BYCASE age_group  -- 直接对age_group进行排序WHEN '25岁以下' THEN 1WHEN '25-30岁' THEN 2WHEN '30-35岁' THEN 3WHEN '35-40岁' THEN 4WHEN '40-45岁' THEN 5WHEN '45-50岁' THEN 6WHEN '50-55岁' THEN 7WHEN '55岁及以上' THEN 8ELSE 9END;

   题目二:思路将题目1转换为t1表,在对t1表进行row_number()窗口函数进行排序结合order by即可搜索,其他直接查询

查询第二年龄段的人数 

WITH t1 AS (SELECTCASE ... END AS age_group,COUNT(*) AS num_peopleFROM employeesGROUP BY age_group
),
t2 AS (SELECTnum_people,age_group,DENSE_RANK() OVER (ORDER BY num_people DESC) AS rkFROM t1
)
SELECT num_people,age_group
FROM t2
WHERE rk = 2;

查询异常人数 直接从employees表进行查询即可 

SELECT COUNT(*) AS num异常 
FROM employees 
WHERE age IS NULL OR age <= 0;

http://www.xdnf.cn/news/8523.html

相关文章:

  • ae钢笔工具无法编辑形状图层的路径
  • Laravle 证件照排版
  • 预分配矩阵内存提升文件数据读取速度
  • 基于Spring boot+vue的中医养生系统的设计与实现(源码+论文+部署+安装+调试+售后)
  • NodeRAG: 基于异构节点的基于图的RAG结构
  • CSS入门
  • SDL2常用函数:SDL_LoadBMP 数据结构详解与示例
  • python 自动生成不同行高的word
  • 医疗AI项目文档编写核心要素硬核解析:从技术落地到合规实践
  • 集群聊天服务器学习 配置开发环境(VScode远程连接虚拟机Linux开发)(2)
  • MMaDA——开源首个多模态大扩散语言模型
  • 计算机网络(3)——传输层
  • 攻防世界——Web题 unseping 反序列化绕过
  • [Git] 如何进行版本回退
  • Python打卡第35天
  • CloudWeGo-Netpoll:高性能NIO网络库浅析
  • Docker:容器化技术
  • Windows 配置 ssh 秘钥登录 Ubuntu
  • 实战教程:基于Vue.js与Django REST Framework的任务管理SPA开发全流程
  • 【论文阅读】——D^3-Human: Dynamic Disentangled Digital Human from Monocular Vi
  • 在 .NET 环境下实现跨进程高频率读写数据
  • HarmonyOS:相机管理
  • Vue 3.0中自定义Composition API
  • 无损提速黑科技:YOLOv8+OREPA卷积优化方案解析(原理推导/代码实现/调参技巧三合一)
  • 使用CodeBuddy基于Pygame模块实现贪吃蛇游戏
  • 快速失败(fail-fast)和安全失败(fail-safe)的区别
  • Python知识图谱工具全解析
  • Vue3性能优化: 大规模列表渲染解决方案
  • 【C++模板与泛型编程】重载与函数模板
  • Linux:再谈进程地址空间