從分組的 SQL 記錄中提取最新資料
資料庫表通常包含同一組的多個條目,每個條目都有不同的日期。 在套用特定篩選器的同時,從具有最新日期的記錄中識別和檢索資料是一項常見的資料分析任務。 這個過程可以使用 SQL 有效率地處理。
這是使用兩步驟方法的解決方案:
首先,我們找出每組最長的日期:
SELECT group_id, MAX(record_date) AS max_date FROM data_table WHERE check_value > 0 GROUP BY group_id;
此查詢決定每個 record_date
的最新 group_id
,其中 check_value
大於零。 注意:由於與 SQL 關鍵字有潛在衝突,通常不鼓勵使用 group
和 date
作為列名。 我使用了 group_id
和 record_date
來代替。
接下來,我們將此結果連接回原始表以檢索完整的行資訊:
SELECT dt.group_id, dt.record_date, dt.check_value, dt.other_column FROM data_table dt INNER JOIN ( SELECT group_id, MAX(record_date) AS max_date FROM data_table WHERE check_value > 0 GROUP BY group_id ) AS max_dates ON dt.group_id = max_dates.group_id AND dt.record_date = max_dates.max_date;
此 INNER JOIN
將第一個查詢的結果與原始表 (data_table
) 結合,僅選擇 group_id
和 record_date
與子查詢中標識的最大日期相符的行。 這提供了每組最新記錄的完整行數據,滿足指定的條件。 other_column
代表您想要檢索的任何其他欄位。 請記得將 data_table
、group_id
、record_date
、check_value
和 other_column
替換為您的實際表格和欄位名稱。
以上是如何在 SQL 中從分組資料集中檢索最大日期和對應資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!