Vì vậy, bạn muốn tìm các chuỗi theo ngày giống nhau.
Đây là một mẹo nhỏ:nếu bạn lấy sự khác biệt giữa row_number()
trên toàn bộ nhóm và row_number()
được phân vùng bởi code
, thì nó sẽ không đổi đối với các hàng liền kề có cùng mã. Phần còn lại chỉ là tổng hợp:
select min(date), max(date), code
from (select t.*,
(row_number() over (order by date) -
row_number() over (partition by code order by date)
) as grpid
from followingdata t
) t
group by grpid, code;