北京SEO

mysql 分组group by排序取每条记录中,时间最大的一条记录

2019/10/10/17:35:39  阅读:2084  来源:谷歌SEO算法  标签: SEO教程

本文章来给大家介绍在于mysql中利用分组group by排序来实现获取记录组中时间最大的记录实现方法,各位朋友可参考.

mysql 分组 group by,排序 取每条记录中,时间最大的一条记录,以下是 test 表,测试sql,代码如下:

  1. CREATETABLEIFNOTEXISTS`test`(
  2. `id`int(10)unsignedNOTNULLauto_increment,
  3. `install`int(10)unsignedNOTNULL,
  4. `day`int(10)unsignedNOTNULL,
  5. `aid`int(10)unsignedNOTNULL,
  6. PRIMARYKEY(`id`)
  7. )ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=12;--phpfensi.com
  8. INSERTINTO`test`(`id`,`install`,`day`,`aid`)VALUES
  9. (1,1232,20080808,1),
  10. (2,2321,20080809,2),
  11. (3,1236,20080810,3),
  12. (5,4212,20080809,1),
  13. (6,2312,20080810,1),
  14. (7,1432,20080811,1),
  15. (8,2421,20080808,2),
  16. (9,4245,20080811,2),
  17. (10,5654,20080810,2),
  18. (11,412,20080808,3);

sql语句,代码如下:

  1. SELECTA.*FROMtestA,
  2. (SELECTaid,MAX(day)max_dayFROMtestGROUPBYaid)B
  3. WHEREA.aid=B.aidANDA.day=B.max_day
  4. ORDERBYa.installDESC

我们也可以使用group by 来实例记录统计.

方法1:使用GROUP BY,代码如下:

SQL Query

SELECT COUNT(*) FROM `prince` GROUP BY `mother` > 24;

执行结果:

count(*)

50029

49971

在100,000行数据上的运行时间:0.0335 秒

分析:这种GROUP BY方法的最大问题在于,无法区分所得到的结果,这两个数字哪一个是天宫娘娘们所生的皇子数,哪一个是地宫娘娘们所生的皇子数呢?不知道,所以,尽管它统计出了总数,但是没有什么意义.

因此,为了区分统计结果,必须要把条件 mother > 24 也作为一个字段在结果集中作为一个字段体现出来,修改后的sql如下:

  1. SELECTCOUNT(*)AS`number`,`mother`>24AS`type`FROM`prince`GROUPBY`mother`>24;
  2. --执行结果
  3. numbertype
  4. 500290
  5. 499711

条件表达式作为字段时,该字段的值就是该条件表达式的值,因此,对应我们的例子,type = 1 也就是表示 mother > 24 的值为1,因此,第二行中的数字代表地宫娘娘们所生的皇子数.

经过修改后,我们看出,天宫娘娘们略胜一筹.

广告内容

mysql 分组group by排序取每条记录中,时间最大的一条记录 mysql 分组group by排序取每条记录中,时间最大的一条记录 mysql 分组group by排序取每条记录中,时间最大的一条记录

相关阅读

热门评论

卢松松博客 卢松松博客

关注创业者、自媒体人和站长的网站

总篇数167

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法