如何使用「GROUP BY」檢索 MySQL 中某個群組的最後一個值?

Mary-Kate Olsen
發布: 2024-10-28 06:45:02
原創
349 人瀏覽過

How to Retrieve the Last Value for a Group in MySQL Using `GROUP BY`?

在 MySQL 中,可以使用 GROUP BY 來選擇給定行組的最後一個值,但不能直接實作。用於實現此目的的技術是在執行分組之前首先將所需的列與唯一識別碼(例如時間戳)連接。

考慮以下查詢:

<code class="sql">SELECT id_branch_channel, id_member, MAX(CONCAT(timestamp, attendance)) AS last_attendance
FROM view_event_attendance
WHERE id_event = 782
GROUP BY id_branch_channel, id_member;</code>
登入後複製

在此查詢時,我們將每行的時間戳和出勤列連接成一個字串。這使我們能夠捕獲與每對唯一的 id_branch_channel 和 id_member 相關的最後記錄的出勤情況。然後使用 MAX() 函數選擇連接字串的最大值,有效地為我們提供每組的最後記錄的出勤情況。

一旦確定了最後的出勤情況,我們就可以使用 SUBSTRING()函數從連接的字串中只提取出勤值。這可以透過以下查詢來實現:

<code class="sql">SELECT id_branch_channel, id_member, SUBSTRING(last_attendance, 19) AS attendance
FROM (
    SELECT id_branch_channel, id_member, MAX(CONCAT(timestamp, attendance)) AS last_attendance
    FROM view_event_attendance
    WHERE id_event = 782
    GROUP BY id_branch_channel, id_member
) AS subquery;</code>
登入後複製

此查詢使用子查詢來執行初始分組和串聯,然後使用 SUBSTRING() 函數從結果中僅選擇出勤列。

透過使用此技術,我們可以有效地選擇 view_event_attendance 表中每組行的最後記錄的出勤情況。

以上是如何使用「GROUP BY」檢索 MySQL 中某個群組的最後一個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!