最近需要查询每组时间最新的记录
表如下:
目标结果是:
 
 
一开始的想法:
select * from
 
(select * from log where account_id = 45 order by shop_id,create_time desc)  w
 
group by w.shop_id
 
这种写法看着没毛病,但是查询出来不是每组最新的一条
 
 
正确的写法很多这里说个认为比较简单的
select * from log where id in
 
(select SUBSTRING_INDEX(GROUP_CONCAT(id order by create_time desc), ',', 1)   from log where account_id = 45 group by shop_id)
 
分部解读:
根据条件查询出分组的所有按时间降序的记录id并拼接
1.select GROUP_CONCAT(id order by create_time desc) from log where account_id = 45 group by shop_id
 
 
  1. 查询每个分组中时间最新的那条记录的id
select SUBSTRING_INDEX(GROUP_CONCAT(id order by create_time desc), ',', 1)   from log where account_id = 45 group by shop_id
 
3.
select * from log where id in
 
(select SUBSTRING_INDEX(GROUP_CONCAT(id order by create_time desc), ',', 1)   from log where account_id = 45 group by shop_id)
 
 
 

group by查询每组时间最新的一条记录的更多相关文章

  1. sqlserver查询数据表中每个类别最新的一条记录

    表tariff_info, 原始数据: 想要的结果:以start_time时间倒序排序, 以code分类, 查询每一类最新的一条记录 sql: SELECT a.* FROM TARIFF_INFO ...

  2. Oracle:查询各组最新的一条记录

    oracle中怎么查询各组中最新的一条记录呢?比如说现在有一个表中几条数据如下: 有两种写法:写法一:over partition by 分析函数 SELECT * FROM (select ID_, ...

  3. mysql 分组取最新的一条记录(整条记录)

    方法:mysql取分组后最新的一条记录,下面两种方法.一种是先筛选 出最大和最新的时间,在连表查询.一种是先排序,然后在次分组查询(默认第一条),就是最新的一条数据了  #select * from ...

  4. mysql-利润set变量模拟分组查询每组中的第N条数据

    查询思路: 很多时候想在使用group by时想查询group by的每一组中的第N条数据,而取这些数据时往往按如下方式去执行则很慢 ; 按如上方式,对于数据10000左右的表就已经很吃不消. 或已拼 ...

  5. mysql 分组后取每个组内最新的一条数据

    首先,将按条件查询并排序的结果查询出来. mysql order by accepttime desc; +---------------------+------+-----+ | acceptti ...

  6. MySQL中查询时间最大的一条记录

    在项目中要查询用户最近登录的一条记录的 ip 直接写如下 SQL: SELECT ip,MAX(act_time) FROM users_login GROUP BY login_id; 但是这样是取 ...

  7. SQL分组取每组前一(或几)条记录(排名)

    mysql分组取每组前几条记录(排名) 附group by与order by的研究 http://www.jb51.net/article/31590.htm --按某一字段分组取最大(小)值所在行的 ...

  8. [MySQL]MySQL数据库中如何查询分组后每组中的最后一条记录?

    原文地址:https://codedefault.com/s/how-can-i-retrieve-the-last-record-in-each-group-mysql 问题描述 比如,在MySQL ...

  9. 工作 巧遇 sql 查询 一组数据中 最新的一条

    SELECT * FROM rsl a, (SELECT CODE, max(time_key) time_key FROM rsl GROUP BY CODE ) b WHERE a. CODE = ...

随机推荐

  1. mysql中主外键关系

    一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...

  2. MOT上海站 | 卓越研发之路:微服务之路

    微服务架构在带来灵活性.扩展性.可用性等优点的同时,其复杂性也给架构师们带来了很大的挑战.当你面对这些挑战一筹莫展时,不妨来参加由msup和微软联合推出的MOT线下沙龙活动吧,我们将给您答疑解惑. M ...

  3. Python爬虫实例(四)网站模拟登陆

    一.获取一个有登录信息的Cookie模拟登陆 下面以人人网为例,首先使用自己的账号和密码在浏览器登录,然后通过抓包拿到cookie,再将cookie放到请求之中发送请求即可,具体代码如下: # -*- ...

  4. windows 控制台下运行cl命令

    前提:确保已经安装vc6或者vs系列 我们可以再命令行直接编译c++程序, 在windows操作系统中,打开命令行,输入cl,若系统提示:'cl' 不是内部或外部命令,也不是可运行的程序或批处理文件. ...

  5. [LeetCode] 90.Subsets II tag: backtracking

    Given a collection of integers that might contain duplicates, nums, return all possible subsets (the ...

  6. Unicode编码学习

    unicode基础知识 简单来说,** unicode 是字符集,utf-8,utf-16,utf-32是编码规则.** unicode 字符集: ttps://unicode-table.com/ ...

  7. mint-ui Toast icon 图标

    Toast({ message: '修改成功', iconClass: 'fa fa-check fa-5x' }); Toast({ message: '修改失败', iconClass: 'fa ...

  8. vue安装,router-link的一些属性,用法,tag active-class,to,replace,exex等等

    第一步:$ npm install -g vue-cli 第二部:$ vue init webpack my-projectName 下面内容转载自:https://www.cnblogs.com/c ...

  9. java项目打包成可运行的jar,main方法带参数

    转载 原文地址:http://www.cnblogs.com/neillee/p/6063808.html#commentform 将 java 项目打包成可运行的 jar 包(main 函数带参数) ...

  10. 创建servlet程序知识点详解---servlet-day01

    方法调用完后,其中的所有局部变量都会消失 ###网络架构 -CS:Client Server  客户端服务器 特点:每种平台都需要开发相对应的app, 开发成本高  功能升级需要下载最新的客户端,用户 ...