Так же, как работает GROUP BY:
--example data
letter, number, bool
a, 10, true
a, 10, false
b, 10, true
b, 10, false
b, 20, true
b, 20, false
--count(*) GROUP BY letter
a, 2
b, 4
--count(*) GROUP BY letter, number
a, 10, 2
b, 10, 2
b, 20, 2
В группе по учитываются уникальные комбинации значений столбцов.
- Когда мы
group by letter
группирующими ключами являются a
и b
.
- Когда мы
group by letter, number
группирующими ключами являются a,10
, b,10
и b,20
Если бы я набрал номер строки:
--row_number() over(partition by letter ...)
a, 1
a, 2
b, 1
b, 2
b, 3
b, 4
--row_number() over(partition by letter, number ...)
a, 10, 1
a, 10, 2
b, 10, 1
b, 10, 2
b, 20, 1
b, 20, 2