Middle
Запознат ли сте с понятието партиции и как се използва PARTITION BY с ORDER BY?
sobes.tech AI
Отговор от AI
Концепцията за партиции в SQL се използва за разделяне на набор от данни на логически групи, върху които могат да се изпълняват функции на прозорец. Ключовата дума PARTITION BY определя как да се разделят данните в тези групи.
ORDER BY вътре във функцията на прозореца задава реда на редовете във всяка партиция, което е важно за функции, зависещи от реда, като ROW_NUMBER(), LAG(), LEAD() и др.
Пример:
SELECT
user_id,
event_time,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY event_time) AS event_rank
FROM events;
Тук за всеки потребител (user_id) данните се разделят на партиции, а вътре във всяка партиция събитията се сортират по време, за да бъдат номерирани в хронологичен ред.