<p><img src="https://img.php.cn/upload/article/000/000/000/173781074242774.jpg" alt="How to Select Only Rows with the Maximum Value in a Specific Column in SQL?
"></p>
<h2>SQL僅選擇列中具有最大值的行</h2>
<h3>概述</h3>
<p>給定一個包含重複行的表,任務是僅選擇特定列中具有最大值的行。 </p>
<h3>解決方法</h3>
<p><strong>方法一:分組和聚合</strong></p>
<p>最直接的解決方法是使用<code>GROUP BY</code>子句和<code>MAX()</code>聚合函數:</p>
<pre class="brush:php;toolbar:false"><code class="language-sql">SELECT id, MAX(rev)
FROM YourTable
GROUP BY id</code></pre>
<p>這將返回每個組的組標識符(id)和最大rev值。 </p>
<p><strong>方法二:自連接和過濾</strong></p>
<p>一種更高級的方法是使用id列作為連接條件,與表本身執行左連接:</p>
<pre class="brush:php;toolbar:false"><code class="language-sql">SELECT a.*
FROM YourTable a
LEFT OUTER JOIN YourTable b
ON a.id = b.id AND a.rev < b.rev
WHERE b.id IS NULL;</code></pre>
<p>這種方法首先將每一行與所有其他具有相同id的行連接起來。然後,它使用連接條件中的<code><</code>運算符刪除所有rev值高於當前行的行。最後,子查詢確保只返回沒有匹配的更高rev值的行。 </p>
<h3>總結</h3>
<p>兩種方法都產生相同的結果,為每個唯一的id提供具有最大rev值的行。兩種方法的選擇取決於性能考慮和可讀性。建議進行基準測試以確定特定數據庫和數據集的最佳方法。 </p>
以上是如何在SQL中的特定列中僅選擇具有最大值的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!