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中文網其他相關文章!