首頁 > 資料庫 > mysql教程 > 如何統計SQL表中值的連續出現次數?

如何統計SQL表中值的連續出現次數?

Barbara Streisand
發布: 2025-01-05 15:40:40
原創
139 人瀏覽過

How to Count Consecutive Occurrences of Values in a SQL Table?

根據連續出現的值進行分組

要統計表中值的連續出現次數,有效的方法是計算行中的差異數字。

考慮以下內容查詢:

select name, count(*) 
from (
    select t.*,
           (row_number() over (order by id) -
            row_number() over (partition by name order by id)
           ) as grp
    from t
) t
group by grp, name;
登入後複製

此子查詢為每行產生兩個行號:

  • row_number() over (order by id) :基於整體行順序的連續數字。
  • row_number() over(按名稱順序按 id 分區):特定於每個唯一的序號名稱。

透過將兩個行號相減,我們建立一個「群組」識別碼 (grp),每當名稱變更或同一名稱明顯連續出現時,該識別碼就會遞增。

最終查詢然後根據此 grp 對行進行分組,併計算每個組中每個名稱的出現次數。這會產生所需的連續出現次數:

+------+------------+
| Name | Repetition |
+------+------------+
| A    |          2 |
| B    |          4 |
| C    |          1 |
| B    |          2 |
+------+------------+
登入後複製

此方法透過利用行號差異作為分組機制,提供了一種有效的方法來識別表中的連續值。

以上是如何統計SQL表中值的連續出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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