Завдання: Використання Віконної Функції
Розглянемо таблицю bank_accounts
, яку ми використовували у попередніх розділах:
Припустимо, ми хочемо додати до таблиці інформацію про клас, до якого належить кожен користувач залежно від залишку на рахунку.
Класи визначаються наступним чином:
- Особа, чий залишок на рахунку знаходиться у нижніх
25%
, належить до четвертого класу; - Особа, чий залишок на рахунку знаходиться між
25%
та50%
, належить до третього класу; - Особа, чий залишок на рахунку знаходиться між
50%
та75%
, належить до другого класу; - Особа, чий залишок на рахунку знаходиться у верхніх
25%
, належить до першого класу.
Для вирішення цієї задачі можна використати віконну функцію NTILE()
.
Функція NTILE()
— це віконна функція, яка розділяє рядки у впорядкованій вибірці на задану кількість приблизно рівних груп або "тайлів".
Вона призначає кожному рядку номер групи, починаючи з 1
, відповідно до групи, у яку він потрапляє.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Note
У цьому прикладі не потрібно вказувати оператор
PARTITION BY
, оскільки ми хочемо застосувати функціюNTILE()
до всього результату, а не до окремих підмножин або розділів даних.
ОператорORDER BY
є достатнім, оскільки він визначає порядок, у якому рядки розподіляються по тайлах, забезпечуючи групування на основі впорядкованого залишку по всій таблиці.
Якщо б ми хотіли обчислювати тайли всередині окремих груп (наприклад, департаментів), тоді використовували бPARTITION BY
.
Swipe to start coding
Ваше завдання — застосувати функцію NTILE()
, щоб отримати інформацію про клас кожного власника рахунку.
Вам потрібно:
- Вказати кількість класів як аргумент функції.
- Задати сортування за балансом рахунку для визначення класу.
- Оскільки вважається, що перший клас — це клас з найбільшим балансом, необхідно впорядкувати баланси у спадному порядку.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.35
Завдання: Використання Віконної Функції
Свайпніть щоб показати меню
Розглянемо таблицю bank_accounts
, яку ми використовували у попередніх розділах:
Припустимо, ми хочемо додати до таблиці інформацію про клас, до якого належить кожен користувач залежно від залишку на рахунку.
Класи визначаються наступним чином:
- Особа, чий залишок на рахунку знаходиться у нижніх
25%
, належить до четвертого класу; - Особа, чий залишок на рахунку знаходиться між
25%
та50%
, належить до третього класу; - Особа, чий залишок на рахунку знаходиться між
50%
та75%
, належить до другого класу; - Особа, чий залишок на рахунку знаходиться у верхніх
25%
, належить до першого класу.
Для вирішення цієї задачі можна використати віконну функцію NTILE()
.
Функція NTILE()
— це віконна функція, яка розділяє рядки у впорядкованій вибірці на задану кількість приблизно рівних груп або "тайлів".
Вона призначає кожному рядку номер групи, починаючи з 1
, відповідно до групи, у яку він потрапляє.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Note
У цьому прикладі не потрібно вказувати оператор
PARTITION BY
, оскільки ми хочемо застосувати функціюNTILE()
до всього результату, а не до окремих підмножин або розділів даних.
ОператорORDER BY
є достатнім, оскільки він визначає порядок, у якому рядки розподіляються по тайлах, забезпечуючи групування на основі впорядкованого залишку по всій таблиці.
Якщо б ми хотіли обчислювати тайли всередині окремих груп (наприклад, департаментів), тоді використовували бPARTITION BY
.
Swipe to start coding
Ваше завдання — застосувати функцію NTILE()
, щоб отримати інформацію про клас кожного власника рахунку.
Вам потрібно:
- Вказати кількість класів як аргумент функції.
- Задати сортування за балансом рахунку для визначення класу.
- Оскільки вважається, що перший клас — це клас з найбільшим балансом, необхідно впорядкувати баланси у спадному порядку.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 4.35single