撰寫 SQL 查詢以查找數字位置以及數字和連續數字計數
CREATE TABLE Logs (
`Id` INTEGER,
`Num` INTEGER
);
INSERT INTO Logs
(`Id`, `Num`)
VALUES
('1', '1'),
('2', '1'),
('3', '1'),
('4', '2'),
('5', '1'),
('6', '2'),
('7', '2');
優先回報
StartId Num Count
1 1 3
4 2 1
5 1 1
6 2 2
我還能得到任何建議,哪個函式可以與 MySQL 函式中的 case 函式一起使用
uj5u.com熱心網友回復:
查看您的資料和預期結果,我相信您的期望是不一致的,例如您可以有 1 和 6或3 和 7。
您需要做的是按連續num值對資料進行分組并聚合結果。
with gp as (
select *,
Row_Number() over(order by id)
- Row_Number() over(partition by num order by id) g
from logs
)
select Min(id) Id,
num, Count(*) Count
from gp
group by g, num
order by id
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/391759.html
下一篇:如何檢查列值的變化?
