首頁 > 資料庫 > mysql教程 > 如何在 SQL 中選擇具有非零支票金額的最大日期行?

如何在 SQL 中選擇具有非零支票金額的最大日期行?

Barbara Streisand
發布: 2025-01-08 13:18:44
原創
953 人瀏覽過

How to Select Maximum Date Rows with Non-Zero Check Amounts in SQL?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板