mysql-where切不可与having乱用!
来源:互联网 发布:剑三御姐捏脸数据下载 编辑:程序博客网 时间:2024/09/21 09:01
基础知识
- 元组
在关系演算中一组域的笛卡尔积中的每一个元素叫做元组.如(李华,计算机专业,2006);这中间的李华、计算机专业、2006都是没有属性和取值范围的。而记录中的是有属性、取值范围等约束的。可以这样说:记录是特殊的元组。 - 聚合函数
SQL基本函数,聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用。
错误实例
数据表结构:stu(name
,score
,id
)
目的:得到分数少于60分学,并超过2个以上的各组数据
SELECT `name`, score,COUNT(*) as cntFROM stuWHERE score<60HAVING cnt>=1
最后得到的结果只有一行数据
解决方法
首先HAVING是聚合函数,在操作之前应该将元组进行分组,才可以得到每个不同的结果,WHERE函数只是操作表单元组数据,最后聚合得到结果只是一个元组数据,返回第一个数据,所以得到以上结果。
解决方法:
SELECT `name`, score,COUNT(*) as cntFROM stuWHERE score<60GROUP BY `name`HAVING cnt>=1
所以为了,进行分组,需要通过name进行分组聚合,然后使用having聚合函数,得到结果。
结论
在操作聚合函数之前需要将元组数据进行分组,然后再进行聚合,得出所要的结果。
0 0
- mysql-where切不可与having乱用!
- mysql having 与 where
- Mysql中where与having的区别
- mysql学习之Having 与 Where
- mysql中where与having的区别
- Where与Having
- where与having区别
- HAVING 与where
- where 与 having
- having 与where区别
- MySQL中having 与where 的异同点
- mysql having与where的区别(个人理解)
- mysql中where字句与having字句的区别
- MySQL :where 语句与Having 语句的区别
- mysql 关于where和having
- mysql where和having区别
- where 与 having 的区别
- where 与having的区别
- 自写聊天室_LinuxC实现(2)——服务端模块化优化及流程图
- 273. Integer to English Words
- Iterm2 快捷键介绍 (mac下 Iterm2常用快捷键)
- 我是一个网卡
- 对一个免费通话恶意APP的逆向分析
- mysql-where切不可与having乱用!
- 教你最快html入门
- shopnc框架数据库查询限制30条记录
- 水稻重要品种与参考基因组存在广泛差异
- Jsoncpp遍历json
- 第一个吃 Wayland 螃蟹的 Fedora 25
- CF#571 B. Minimization (DP)
- U3D开发学习之路--RayCast中layerMask的使用
- 转 [学习笔记]时钟中断的定义及作用