• SQL获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)


    # 获取分组后取某字段最大一条记录
    # 方法一:(效率最高)
    select * from test as a 
    where typeindex = (select max(b.typeindex) 
    from test as b 
    where a.type = b.type );
    
    
    # 方法二:(效率次之)
    select 
    a.* from test a,
    (select type,max(typeindex) typeindex from test group by type) b 
    where a.type = b.type and a.typeindex = b.typeindex order by a.type 
    
    
    
    
    # 方法三:
    select a.* from test a inner join (select type , max(typeindex) typeindex from test group by type) b on a.type = b.type and a.typeindex = b.typeindex order by a.type
    
    
    # 方法四:(效率最低)
    select * from
    (
    select *,ROW_NUMBER() OVER(PARTITION BY type ORDER BY typeindex DESC) as num
    from test
    ) t
    where t.num = 1

    转自:https://www.cnblogs.com/onesmail/p/5207236.html

  • 相关阅读:
    发现IDEA两个超级好用的工具
    事务的传播属性
    Java 单元测试PowerMockito
    Spirng源码学习 第一天
    2021年 每日打卡
    Spring源码调试环境搭建成功
    practice
    学习进度表
    报数
    负二进制转换
  • 原文地址:https://www.cnblogs.com/JentZhang/p/12162170.html
Copyright © 2020-2023  润新知