首頁  >  問答  >  主體

有沒有簡單的方法來取得那些價值與其他記錄不同的記錄

所以,我的資料庫中有記錄:

id 日期時間 姓名 等級
0 2022-03-22 23:18:01 約翰 615
1 2022-03-22 23:17:01 約翰 616
2 2022-03-22 23:16:02 約翰 616
3 2022-03-22 23:15:01 約翰 616
4 2022-03-22 23:14:01 約翰 617
5 2022-03-22 23:13:01 約翰 617
6 2022-03-22 23:12:01 約翰 616
7 2022-03-22 23:11:01 約翰 617
8 2022-03-22 23:10:02 約翰 618
9 2022-03-22 23:09:01 約翰 618

結果我想得到這些值,其中下一個「lvl」與上一個「lvl」不同。 我的意思是,我想獲取帶有 id 的結果記錄:

0 - 因為它是第一個,

1 - 因為lvl不等於0,

2,3 - 跳過,因為lvl與1相同

4 - 因為 lvl 與 1 不同,

5 - 跳過,因為 lvl 與 4 相同,

6 - 因為等級與 5 不同,

7 - 因為等級與 6 不同,

8 - 因為等級與 7 不同,

9 - 跳過。

P粉163951336P粉163951336179 天前329

全部回覆(1)我來回復

  • P粉164942791

    P粉1649427912024-04-05 16:08:06

    這似乎非常適合 lag 分析函數(使用 MySQL 8 ):

    with keep as (
      select *, if(id=Min(id) over() or level != lag(level) over(order by id), 1, 0) keepme
      from t
    )
    select id
    from keep
    where keepme=1;

    範例小提琴

    回覆
    0
  • 取消回覆