由GroupBy-Having想到的
来源:互联网 发布:sqlserver清空数据库 编辑:程序博客网 时间:2024/06/11 01:33
MySQL 的最简单形式、最容易理解的形式是:
SELECT column FROM table WHERE condition
然后,人们希望能对结果进行分组,于是出现了聚集函数,如查询总积分超过60的人:
SELECT name, SUM(credit) FROM creditlog WHERE condition GROUP BY name HAVING SUM(credit) > 60 ;
它其实是两步操作:
1. SELECT name, credit FROM creditlog WHERE condition;
2. 对第一步的结果,依据name分组,求和
3. 针对第二步的求和结果做过滤
1 和 2 是一种流式计算的关系。 MySQL 为了一次性解决基本查询和流式计算的问题,就发明了GroupBy,为了对分组的结果进行类似WHERE的过滤,就发明了Having,其实它本质就是一个WHERE条件,只不过是为了避免关键词重复而已。
MySQL表达这种2层流式计算还算简便,但当我们需要用它来处理3层、4层、N层的流式计算时,MySQL 语句就会写得复杂无比。我认为,这是MySQL语言设计的缺陷。
0 0
- 由GroupBy-Having想到的
- groupby 和 having的学习
- SQL中 groupby和having的区别
- order by 、groupby 、having的用法区别
- SQL中Groupby和Having的使用方法
- 由本子想到的
- 由忧郁想到的
- 由电车男想到的
- 由MBV想到的
- 由“枣子”想到的
- 由 setMeidatime() 想到的
- 由ff想到的
- 由HelloWorld想到的
- 由观察想到的
- 由面试想到的
- 由自行车想到的......
- 由《变形金刚》想到的
- 由团队想到的.......
- 从头认识多线程-4.4 ThreadLocal的实现原理
- 小玩文件(2)
- getopt函数
- [linux]using temporary as lvalue [-fpermissive]
- 酷炫的Activity切换动画,打造更好的用户体验
- 由GroupBy-Having想到的
- mongodb安装与配置
- JavaSE入门学习43:文件传输基础之I/O流(二)
- Git超简明教程
- Jenkins+linux安装配置注意事项
- 怎么用Beyond Compare设置比较文件夹对齐方式
- vsprintf函数
- Android_连接rs485线 程序隐式意图启动
- 精简ttf,svg字体库文件,删除多余字体,保留用到字体