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

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

Припустімо, що потрібно додати до таблиці інформацію про клас, до якого належить кожен користувач залежно від залишку на його рахунку.

Класи визначаються наступним чином:

  • Особа, чий залишок на рахунку входить до нижніх 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 до 4, де клас 1 має найвищі залишки.

  • Використайте 4 як кількість класів;
  • Впорядкуйте за стовпцем balance у спадному порядку;
  • Переконайтеся, що у результаті відображаються account_holder, balance та їхній class.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

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?

close

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

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

Припустімо, що потрібно додати до таблиці інформацію про клас, до якого належить кожен користувач залежно від залишку на його рахунку.

Класи визначаються наступним чином:

  • Особа, чий залишок на рахунку входить до нижніх 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 до 4, де клас 1 має найвищі залишки.

  • Використайте 4 як кількість класів;
  • Впорядкуйте за стовпцем balance у спадному порядку;
  • Переконайтеся, що у результаті відображаються account_holder, balance та їхній class.

Рішення

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

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

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

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

single

some-alt