首頁 > 資料庫 > mysql教程 > 如何從 MySQL 分組結果中檢索第一筆和最後一筆記錄?

如何從 MySQL 分組結果中檢索第一筆和最後一筆記錄?

Patricia Arquette
發布: 2024-11-10 06:22:02
原創
874 人瀏覽過

How to Retrieve the First and Last Records from Grouped Results in MySQL?

從MySQL 中的分組結果中擷取第一條和最後一筆記錄

在MySQL 中,從分組結果集中取得第一條和最後一筆記錄,同時應用聚合函數可能具有挑戰性。考慮以下查詢:

SELECT MIN(low_price), MAX(high_price), open, close
FROM symbols
WHERE date BETWEEN (.. ..)
GROUP BY YEARWEEK(date)
登入後複製

此查詢按週將資料分組,併計算每週的最低低價、最高最高價、開盤價和收盤價。但是,它不提供每個組中的第一個和最後一個記錄。

要實現此目的,一種方法是使用GROUP_CONCAT 和SUBSTRING_INDEX 函數:

SUBSTRING_INDEX(GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1) AS open
SUBSTRING_INDEX(GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1) AS close
登入後複製

此解決方案可讓您連接每個群組的所有開啟值和關閉值,以逗號分隔,然後使用SUBSTRING_INDEX 提取第一個和最後一個值。這種方法避免了昂貴的子查詢,並且可以更有效地解決這個特定問題。

有關 GROUP_CONCAT 和 SUBSTRING_INDEX 函數的更多信息,請參閱 MySQL 文件。此外,您還可以探索其他選項,例如使用視窗函數或使用者定義的函數,具體取決於查詢的特定要求。

以上是如何從 MySQL 分組結果中檢索第一筆和最後一筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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