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中文网其他相关文章!