zoukankan      html  css  js  c++  java
  • mysql 读取某个分组最大值,或最新记录的sql

    第一种方法:

    SELECT * FROM mysqltest a
    WHERE 1 >(SELECT count(*) FROM mysqltest WHERE class = a.class and score>a.score)
    ORDER BY a.class,a.score DESC;

    这种还可以同个分组取多条

    第二种方法:

    select SQL_NO_CACHE puaction_memberid,puaction_id from push_action as a,(select SUBSTRING_INDEX(group_concat(puaction_id order by puaction_id desc),',',1) as pid from push_action where puaction_memberid IN ( 1396293,1394996,1394888,1394243,826977) group by puaction_memberid ) as b where a.puaction_id=b.pid

    利用group_concat与USBSTRING_INDEX这两个mysql函数

    group_concat是把每个分组里的某个字段的值用符号链接起来,并这个这段是按某种排序排列的,比如:1,2,3,4

    USBSTRING_INDEX:取出以符号作为分割的字符串的第几个值,比如我们想获得上一个例子的2这个值:SUBSTRING_INDEX(字符串,',',2);

    第三种方法

    select puaction_memberid,puaction_id from push_action as a,(select max(puaction_id) as pid from push_action where puaction_memberid IN ( 1396293,1394996,1394888,1394243,826977) group by puaction_memberid limit 5) as b where a.puaction_id=b.pid

    先取出每个分组的最大值。再进行链接查询。

  • 相关阅读:
    MathType如何插入竖直线
    MongoDB时间类型
    《穆斯林的葬礼》读书笔记
    Fluentd安装——通过rpm方式
    MongoDB安装、管理工具、操作
    Flask服务入门案例
    python判断类型
    linux硬链接与软链接
    python 环境问题
    Linux进程管理工具——supervisor
  • 原文地址:https://www.cnblogs.com/myblog1314/p/3068574.html
Copyright © 2011-2022 走看看