Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Выделение непрерывных групп
- select
- sum(
- case
- when group_id = prev_group_id
- then 0
- else 1
- end
- ) as group_count
- from (
- select
- group_id,
- lag(group_id) over () as prev_group_id
- from public.users
- ) as users
- 2. Количество записей в каждой группе
- select
- group_id,
- count(*)
- from (
- select
- *,
- row_number() over (order by id) - row_number() over (partition by group_id order by id) as group_seq
- from public.users
- ) as users
- group by group_id, group_seq
- 3. Минимальный id записи в группе
- select
- group_id,
- min(id)
- from (
- select
- *,
- row_number() over (order by id) - row_number() over (partition by group_id order by id) as group_seq
- from public.user
- ) as users
- group by group_id, group_seq
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement