首页 >数据库 >mysql教程 >如何在MySQL中查找每个组和所有模型的最新日期?

如何在MySQL中查找每个组和所有模型的最新日期?

DDD
DDD原创
2025-01-24 08:47:12940浏览

How to Find the Latest Date for Each Group and All Models with the Latest Date in MySQL?

MySQL 分组数据中获取最新日期

要获取给定数据集中每个模型组的最新日期,请使用以下查询:

<code class="language-sql">SELECT model, MAX(date) AS latest_date
FROM doc
GROUP BY model;</code>

此查询首先按 model 列对 doc 表中的行进行分组,然后查找每个组中的最大日期。结果是一个包含两列的表:model(标识分组)和 latest_date(表示该组的最新日期)。

如果您需要查找所有具有整体最新日期的模型:

<code class="language-sql">SELECT model, date
FROM doc
WHERE date = (SELECT MAX(date) FROM doc);</code>

此查询查找所有日期与整个表中最新日期相同的行。

其他选项

对于需要从与最新日期匹配的每个记录中获取详细信息的场景,可以使用以下查询:

<code class="language-sql">SELECT d.model, d.date, d.color, d.etc
FROM doc d
WHERE d.date = (SELECT MAX(d2.date) FROM doc d2 WHERE d2.model = d.model);</code>

MySQL 8.0 及更高版本提供 OVER 子句,这可以为更大的数据集提供更快的结果:

<code class="language-sql">SELECT model, date, color, etc
FROM (SELECT model, date, color, etc,
       MAX(date) OVER (PARTITION BY model) AS max_date
       FROM doc) AS predoc
WHERE date = max_date;</code>

以上是如何在MySQL中查找每个组和所有模型的最新日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn