最近需要查询每组时间最新的记录
表如下:
目标结果是:
 
 
一开始的想法:
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. AttributeError: 'int' object has no attribute 'isdigit'(python下的isdigit函数)

    python下的isdigit函数:  isdigit() 方法检测字符串是否只由数字组成. 语法 isdigit()方法语法:  str.isdigit() 示例代码如下: 结果: 我想说的重点在于 ...

  2. [dev] 啥是Virtual Private Network

    先来读wiki:https://en.wikipedia.org/wiki/Virtual_private_network 摘要: VPNs can be either remote-access ( ...

  3. Memcache&Redis

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.减少数据库读取次数来提高网站速度 先在一台机器安装memcache 然后使用Python 安装pip3 i ...

  4. SQL[Err] ORA-00979: not a GROUP BY expression

    Oracle中group by用法 not a GROUP BY expression异常产生是因为group by用法的问题. 在使用group by 时,有一个规则需要遵守,即出现在select列 ...

  5. npm install的时候出现unexpected end of file错误提示时的解决办法

    运行npm cache clean --force 清空npm缓存即可决这个问题 参考:https://blog.csdn.net/jingtian678/article/details/811876 ...

  6. 1_01 vue的双向绑定

    听说vue1是双向绑定,不过现在Vue2不能直接双向绑定,需要设置绑定. 一.常见的是input表单的v-model const component = { template: ` <div&g ...

  7. 【C】NO.85.EBook.10.C.1.001-【C primer plus】-

    1.0.0 Summary Tittle:[C]NO.85.EBook.10.C.1.001-[C primer plus]- Style:C Series:C Since:2018-02-06 En ...

  8. js 判断浏览器型号

    <html><head> <meta http-equiv="Content-Type" content="text/html;charse ...

  9. WGDC2019第八届全球地理信息开发者大会(北京)

    WGDC2019第八届全球地理信息开发者大会 会议召开时间:2019-07-09 08:00至 2019-07-10 18:00结束 会议召开地点:北京  北京国际会议中心  朝阳区北辰东路8号 会议 ...

  10. Qt 的坐标系统

    QWidget *q = , Qt::WindowStaysOnTopHint); q->setWindowTitle(QObject::tr("父窗口widget")); ...