從 SQL 表中提取具有非零檢查值的最新條目
本指南示範如何有效檢索每組的最新記錄,過濾非零支票金額。 讓我們假設一個表格的結構如下:
<code>group date cash checks 1 1/1/2013 0 0 2 1/1/2013 0 800 1 1/3/2013 0 700 3 1/1/2013 0 600 1 1/2/2013 0 400 3 1/5/2013 0 200</code>
以下 SQL 方法可以實現此目的:
首先,我們找到 checks
值大於零的每個組別的最大日期:
<code class="language-sql">SELECT group, MAX(date) AS max_date FROM table WHERE checks > 0 GROUP BY group;</code>
這會產生:
<code>group max_date 2 1/1/2013 1 1/3/2013 3 1/5/2013</code>
接下來,我們將此結果連接回原始表以檢索相應的 checks
金額:
<code class="language-sql">SELECT t.group, t.date AS max_date, t.checks FROM table t INNER JOIN ( SELECT group, MAX(date) AS max_date FROM table WHERE checks > 0 GROUP BY group ) AS a ON a.group = t.group AND a.max_date = t.date;</code>
最終查詢產生所需的輸出:
<code>group max_date checks 2 1/1/2013 800 1 1/3/2013 700 3 1/5/2013 200</code>
重要提示: 強烈建議不要使用保留字(如 date
)作為列名。 它可能會導致 SQL 語法錯誤並使程式碼更難以維護。 為您的列考慮更具描述性和明確的名稱。
以上是如何在 SQL 中選擇具有非零支票金額的最大日期行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!