Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Використання Віконної Функції | Деякі Додаткові Теми
Просунуті Техніки в SQL

bookЗавдання: Використання Віконної Функції

Розглянемо таблицю 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(), щоб отримати інформацію про клас кожного власника рахунку.

Вам потрібно:

  1. Вказати кількість класів як аргумент функції.
  2. Задати сортування за балансом рахунку для визначення класу.
  3. Оскільки вважається, що перший клас — це клас з найбільшим балансом, необхідно впорядкувати баланси у спадному порядку.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 5
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

Awesome!

Completion rate improved to 4.35

bookЗавдання: Використання Віконної Функції

Свайпніть щоб показати меню

Розглянемо таблицю 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(), щоб отримати інформацію про клас кожного власника рахунку.

Вам потрібно:

  1. Вказати кількість класів як аргумент функції.
  2. Задати сортування за балансом рахунку для визначення класу.
  3. Оскільки вважається, що перший клас — це клас з найбільшим балансом, необхідно впорядкувати баланси у спадному порядку.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

close

Awesome!

Completion rate improved to 4.35
Секція 3. Розділ 5
single

single

some-alt