规则:
第一,凡是在group by后面出现的字段,必须同时在select后面出现;

第二,凡是在select后面出现的、同时未在聚合函数中出现的字段,必须同时出现在group by后面.
第一和第二条规则任何一条不满足,则默认去分组的第一条记录显示

having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。
重点内容
如果想对于group by内部进行排序,例如下面这种情形:

CREATE TABLE info
(
info_id int NOT NULL AUTO_INCREMENT,
content int DEFAULT 0 NOT NULL,
update_time datetime DEFAULT 0 NOT NULL
)
这里每一个info_id对应着多个content,好比我们的论坛一样,每一个帖子,对应着多个评论
如果我们想取最新的那条评论有如下两种方式
第一种:
先对表中的内容按照update_time进行降序排序,然后再按照上面的规则,默认取分组中的第一条记录(因为content和update_time未出现在group by 后面);如下:
select
info_id , content , update_time
from
(select * from info order by update_time desc) as i
group by i.info_id
第二种:
先把所有需要的字段整体当做一个分组,再利用having语句对于分组进行刷选,选出当前info_id下,最大的update_time的那条记录
select
i1.info_id , i1.content, i1.update_time
from
info i1
group by
i1.info_id
having
i1.update_time =
(select max(update_time) from info i2 where i2.info_id = i1.info_id )
这样即可,大家如果还有什么好的建议记得告诉我。

group by内部排序相关推荐

  1. 10-1-直接插入排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第10章  内部排序 - 直接插入排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课 ...

  2. 简单的选择排序(内部排序)

    1 /** 2 * 3 */ 4 package com.trfizeng.selectionsort; 5 6 /** 7 * @author trfizeng 内部排序 选择排序-简单选择排序(S ...

  3. 10-9-堆排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第10章  内部排序 - 堆排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码 ...

  4. 超详细!各种内部排序算法的比较

    先来个表格总结直观展示下: 各种内部排序算法的性质            算法种类                    时间复杂度  空间复 杂度 稳定性 最好情况 平均情况 最坏情况 插入排序 直 ...

  5. 直接插入排序(内部排序)

    1 package com.trfizeng.insertionsort; 2 3 /** 4 * 5 * @author trfizeng 内部排序 插入排序 --- 直接插入排序(Straight ...

  6. 万字长文总结八大经典内部排序算法

    写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...

  7. 数据结构-第九章 内部排序-知识点总结1

    第九章 内部排序 排序:重点在于对于记录的关键字进行排序,得到按关键字有序记录序列 分为:     A.内部排序: 排序过程在内存中进行      B.外部排序: 待排序记录数据量过大,需要借助外部存 ...

  8. 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...

    掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等). 数组高级以及Arrays(掌握) 排序方法 空间复杂度 时间复杂度 稳定性 插 入 排 序 ...

  9. 飞鸽传书内部排序算法的性能比较

    部排序算法的性能比较 飞鸽传书内部排序算法的性能比较 1)排序的稳定性及分析: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=r ...

最新文章

  1. Waymo正式向真正“无人车”迈进,申请DMV远程监控许可证
  2. 识别TLS加密恶意流量
  3. 机器学习 不均衡数据的处理方法
  4. day17——其他内置函数
  5. 支架预压弹性变形值计算_复杂环境下大跨度箱梁整体支架法现浇安全要点
  6. matlab中对伺服电机,基于Matlab的伺服电机Modbus通讯研究
  7. 细节之中自有天地,整洁成就卓越代码
  8. C语言系列文章之#和##
  9. Spring Data JPA 从入门到精通~@PreUpdate异常场景分析
  10. ultraedit 运行的是试用模式_单元测试 —— 前后端分离开发模式下后端质量的保证...
  11. [noip-2013] 货车运输
  12. 英特尔主板快捷启动键_BIOS里如何设置U盘启动?硬盘怎么设置第一启动项?
  13. JS中判断某个字符串/数组中是否包含某个值
  14. for循环的auto用法
  15. 程序员节你们公司都有什么活动
  16. 5G智慧工业 | PLC设备远程监控系统解决方案
  17. IDEA鼠标悬停显示注释
  18. 信息学竞赛有什么好的比赛网站?
  19. java stream中的peek()用法
  20. PMP知识点总结—ADM与PDM的区别

热门文章

  1. 人事管理软件为企业提供了哪些价值?
  2. 波浪分析数据转换:大智慧、钱龙、胜龙可用Advanced GET ToGet 数据转换器V3.05特别版...
  3. caffe2 教程入门(python版)
  4. 仿毛笔字的自定义绘图View
  5. 【渝粤教育】广东开放大学 英诗汉译赏析 形成性考核 (46)
  6. Java中static作用及用法
  7. 多线程学习九:煮茶算法
  8. pthread使用方法
  9. python version compatibility_Python compatibility-lib包_程序模块 - PyPI - Python中文网
  10. electron tray_如何在Electron JS Tray菜单项中添加单选和复选框?