Завдання: Використання Віконної Функції
Припустімо, що потрібно додати до таблиці інформацію про клас, до якого належить кожен користувач залежно від залишку на його рахунку.
Класи визначаються наступним чином:
- Особа, чий залишок на рахунку входить до нижніх
25%, належить до четвертого класу; - Особа, чий залишок на рахунку знаходиться між
25%та50%, належить до третього класу; - Особа, чий залишок на рахунку знаходиться між
50%та75%, належить до другого класу; - Особа, чий залишок на рахунку входить до верхніх
25%, належить до першого класу.
Для вирішення цієї задачі можна використати віконну функцію NTILE().
Функція NTILE() — це віконна функція, яка розділяє рядки у відсортованій вибірці на задану кількість приблизно рівних груп або "тайлів".
Вона присвоює кожному рядку номер групи, починаючи з 1, відповідно до групи, в яку він потрапляє.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
У цьому прикладі не потрібно вказувати оператор PARTITION BY, оскільки ми хочемо застосувати функцію NTILE() до всього результату, а не до окремих підмножин або розділів даних.
Оператор ORDER BY є достатнім, оскільки він визначає порядок, у якому рядки розподіляються по тайлах, забезпечуючи групування на основі відсортованого порядку зарплат у всій таблиці.
Якщо потрібно було б обчислювати тайли в межах окремих груп (наприклад, департаментів), тоді використовувався б PARTITION BY.
Swipe to start coding
Заповніть пропуски, використовуючи функцію NTILE(), щоб кожному власнику рахунку було призначено клас від 1 до 4, де клас 1 має найвищі залишки.
- Використайте 4 як кількість класів;
- Впорядкуйте за стовпцем
balanceу спадному порядку; - Переконайтеся, що у результаті відображаються
account_holder,balanceта їхнійclass.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
How do I use the NTILE() function to classify users into these classes?
Can you show an example SQL query that implements this classification?
What does the output table look like after adding the class information?
Чудово!
Completion показник покращився до 4.55
Завдання: Використання Віконної Функції
Свайпніть щоб показати меню
Припустімо, що потрібно додати до таблиці інформацію про клас, до якого належить кожен користувач залежно від залишку на його рахунку.
Класи визначаються наступним чином:
- Особа, чий залишок на рахунку входить до нижніх
25%, належить до четвертого класу; - Особа, чий залишок на рахунку знаходиться між
25%та50%, належить до третього класу; - Особа, чий залишок на рахунку знаходиться між
50%та75%, належить до другого класу; - Особа, чий залишок на рахунку входить до верхніх
25%, належить до першого класу.
Для вирішення цієї задачі можна використати віконну функцію NTILE().
Функція NTILE() — це віконна функція, яка розділяє рядки у відсортованій вибірці на задану кількість приблизно рівних груп або "тайлів".
Вона присвоює кожному рядку номер групи, починаючи з 1, відповідно до групи, в яку він потрапляє.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
У цьому прикладі не потрібно вказувати оператор PARTITION BY, оскільки ми хочемо застосувати функцію NTILE() до всього результату, а не до окремих підмножин або розділів даних.
Оператор ORDER BY є достатнім, оскільки він визначає порядок, у якому рядки розподіляються по тайлах, забезпечуючи групування на основі відсортованого порядку зарплат у всій таблиці.
Якщо потрібно було б обчислювати тайли в межах окремих груп (наприклад, департаментів), тоді використовувався б PARTITION BY.
Swipe to start coding
Заповніть пропуски, використовуючи функцію NTILE(), щоб кожному власнику рахунку було призначено клас від 1 до 4, де клас 1 має найвищі залишки.
- Використайте 4 як кількість класів;
- Впорядкуйте за стовпцем
balanceу спадному порядку; - Переконайтеся, що у результаті відображаються
account_holder,balanceта їхнійclass.
Рішення
Дякуємо за ваш відгук!
single