zoukankan      html  css  js  c++  java
  • [转]Mysql将数据分组后取出时间最近的数据

    如题,我在网上也找过相关解决方法,很多解答都是这么一句SQL语句:
    select Id,AccountId,Mark,max(CreateTime) as Latest from AccountMark as b group by AccountId 

    使用Max函数。但是在我查出来的数据中似乎有些不对,如图,反白的那一条数据,Mark字段和CreateTime字段根本不对应啊!



    这是怎么回事?使用Max函数后在分组这样靠谱吗?

    还有一条语句:select *,COUNT(AccountId) as Num from 
    (select * from AccountMark order by CreateTime desc) `temp`  
    group by AccountId order by CreateTime desc 
    这样查出来的数据是对的


    但是,我需要创建视图,Mysql中视图里不允许出现查询子句。求大神些一条SQL语句,能实现既不出现子句,又能查出正确数据。谢谢!

    解决方法

    select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId
    and b.CreateTime<CreateTime )

    原文地址:http://bbs.csdn.net/topics/390958705

  • 相关阅读:
    (全国多校重现赛一) H Numbers
    (全国多校重现赛一)E-FFF at Valentine
    (全国多校重现赛一)B-Ch's gifts
    (全国多校重现赛一)A-Big Binary Tree
    UVA-10391 Compoud Words
    HDU-1027Ignatius and princess II
    CodeForces-501B
    UVA-136Ugly numbers
    UVA-101
    UVA-10474
  • 原文地址:https://www.cnblogs.com/o0oo/p/6907905.html
Copyright © 2011-2022 走看看