在mysql中使用group by和order by取每个分组中日期最大一行数据
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post"> 在mysql中使用group by进行分组后取某一列的最大值,我们可以直接使用MAX()函数来实现,但是如果我们要取最大值对应的ID,那么我们需要取得整行的数据。最开始的实现方法如下 t.event_id,(t.create_time) t.company_name,t.row_key,t.event_subType执行以上SQL语句确实可以得到每个分组中最大的create_time,但是经检查发现最大的create_time对应event_id不是同一行的数据,如果我们要对event_id进行操作的话,结果肯定是错误的。 最后在网上找到了一个变通的办法,如下 t. ( `monitor_company_event` `create_time` limit t.company_name,t.event_subType从以上SQL中可以看出,我们先对所有的数据按create_time时间降序排列,然后再分组,那么每个分组中排在最上面的记录就是时间最大的记录,对执行结果检查后,确实可以实现我们的需求。 注意:
<div class="cnblogs_code"> t.
( `monitor_company_event` `create_time` t.company_name,t.event_subType
<p style="color: #999999;"> 转:https://blog.csdn.net/shiyong1949/article/details/78482737 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |