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

SQL_HAVING小例子

例一

求众数的sql语句1:

select income,count(*) as cnt 
from graduates
group by income
having count(*) >= all(select count(*) from graduates group by income);

这段SQL语句的作用是从一个名为graduates的表中找出income(收入)字段的众数。众数是指在一组数据中出现次数最多的数值。

逐步分析:

  1. select income, count() as cnt from graduates:这部分是查询的基础,它从graduates表中选择income字段,并计算每个income值出现的次数(使用count()函数),将这个计数命名为cnt。
  2. group by income:这个子句将结果按income字段的值进行分组。这意味着对于表中的每个不同的income值,都会计算出该值出现的次数。
  3. having count() >= all (select count() from graduates group by income):HAVING子句用于过滤GROUP BY子句产生的分组结果。这里,它用于找出那些出现次数至少和其他所有income值一样多的income值。
  4. 子查询select count() from graduates group by income再次对graduates表进行分组和计数,但是这次没有在外部查询中使用。all关键字确保外部查询的count()(即cnt)至少等于子查询返回的每个cnt值。

简而言之,这个查询的逻辑是:对于graduates表中的每个income值,计算它的出现次数,然后只保留那些出现次数至少和其他所有income值一样多的income值。这样,如果某个income值是众数(即出现次数最多),它就会被这个查询语句选出。
需要注意的是,如果有多个income值出现次数相同且都是最多的,这个查询会返回所有这些值。如果没有众数(即所有income值出现次数都不相同),这个查询可能不会返回任何结果,因为它要求至少等于所有其他值的出现次数。

http://www.lryc.cn/news/444938.html

相关文章:

  • Avalonia第三方UI库Semi.Avalonia用法详解
  • 宠物智能化听诊器的健康管理!
  • MyBatis-Plus 实体类注解
  • 如何写一个自动化Linux脚本去进行等保测试--引言
  • 美团测开OC!
  • HyperWorks的实体几何创建与六面体网格剖分
  • 项目实战:Ingress搭建Nginx+WP论坛+MariaDB
  • UWA支持鸿蒙HarmonyOS NEXT
  • 【齐家网-注册/登录安全分析报告】
  • MyBatis 基本概念
  • 前端开发之装饰器模式
  • 【STL】pair 与 map:基础、操作与应用
  • 深度学习-图像处理篇4VGG网络
  • 初级css+初级选择器
  • gitlab 的CI/CD (二)
  • 【html】基础(一)
  • 【网站架构部署与优化】Nginx优化
  • gitlab修改访问端口
  • 分库分表-分页排序查询
  • 【openwrt-21.02】openwrt PPTP Passthrough 不生效问题解决方案
  • 【编程基础知识】Mysql的各个索引数据结构及其适用场景
  • 解决IDEA出现:java: 程序包javax.servlet不存在的问题
  • Comfyui控制人物骨骼,细节也能完美调整!
  • mysql学习教程,从入门到精通,SQL LEFT JOIN 语句(23)
  • VSCode远程切换Python虚拟环境
  • 【CSS in Depth 2 精译_038】6.2 CSS 定位技术之:绝对定位
  • 828 华为云征文|华为 Flexus 云服务器搭建 SamWaf 开源轻量级网站防火墙
  • 基于二自由度汽车模型的汽车质心侧偏角估计
  • 前端html+css+js 基础总结
  • 若依VUE项目安全kind-of postcss vite漏洞扫描和修复