PARTITION BY criterion
Parte da seção Fundamentos do Journey de SQL da Coddy — lição 59 de 72.
Outra opção para a cláusula OVER () é PARTITION BY
Isso nos permite numerar as linhas para cada grupo separadamente
Por exemplo:
| id | type |
| 132 | t1 |
| 52 | t2 |
| 92 | t1 |
| 154 | t3 |
| 198 | t1 |
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1Isso gerará uma coluna que numerará cada tipo dentro de si mesmo:
| id | type | row_num |
| 132 | t1 | 1 |
| 52 | t2 | 1 |
| 92 | t1 | 2 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
id 92 possui row_num 2 porque é a segunda linha de type t1 quando ordenado por id.
Nota: ROW_NUMBER() requer uma ORDER BY cláusula dentro do OVER() para determinar como as linhas devem ser numeradas dentro de cada partição.
Podemos até especificar múltiplas colunas dentro do PARTITION BY:
ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)Desafio
FácilTabelas e colunas disponíveis:
<strong>doors</strong>:<strong>id</strong>,<strong>publication_year</strong><strong>doors_specs</strong>:<strong>id</strong>,<strong>country</strong>,<strong>color</strong>
Uma fábrica está construindo portas. Ela precisa numerar as portas para cada combinação de country e color que tenha um publication_year menor que 2000. Nomeie esta coluna row_num.
As portas devem ser numeradas dentro de cada grupo em ordem ascendente pelo seu id. Portas sem especificações devem ser ignoradas. Ordene o resultado final em ordem ascendente pelo id.
Folha de consulta
Use PARTITION BY na cláusula OVER() para numerar linhas dentro de grupos:
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type) as row_num
FROM table1Você pode particionar por múltiplas colunas:
ROW_NUMBER() OVER (PARTITION BY type, hue)Experimente você mesmo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function8Statistics
Built-In Aggregate Part 1Built-In Aggregate Part 2Grouping Part 1Grouping Part 2Subqueries Part 1Subqueries Part 2Recap - Total Gain ShopRecap - Scooter ShopRecap - Coffee Shop11Window Functions part 1
ROW_NUMBER functionORDER BY criterionPARTITION BY criterionPARTITION & ORDERLEAD & LAG FunctionsRecap - LEAD & LAGRecap - PicturesRecap - Boxes3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns