Множення за допомогою суми в Oracle

Функція "Сума" в Oracle дозволяє додавати всі дані із зазначеного стовпця та відображати результат у результатах вашого запиту. Ви можете використовувати функцію множення з функцією підсумовування для множення результатів із функції підсумовування. Ви використовуєте цю функцію в складних запитах, де вам потрібно повернути декілька математичних результатів користувачеві.

Призначення

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

Функція підсумовування

Функція підсумовування використовується у вашому запиті "вибір". Ви повинні вказати стовпець, який потрібно скласти у функції підсумовування. Наступний код складає всі замовлення клієнтів і відображає результат:

виберіть суму (загальний_заказ) як Загальну із замовлень, де customerid = 22

Результати наведеного вище запиту показують загальну суму для ідентифікатора клієнта 22.

Множимо

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

виберіть суму (загальний_заказ) як Всього, допоміжний (загальний_заказ) * кількість (замовлення) із замовлень, де customerid = 22

Запит вище показує обидва результати, але ви можете об’єднати два рівняння в одне, що дасть одне значення в результатах.

Міркування

Якщо вам потрібно помножити окремі записи, ви повинні створити запити для кожного запису. Ви також можете створити курсор в Oracle, щоб прокрутити ряд записів і записати кожен результат у змінну. Курсори в Oracle повільніші, але вони використовуються у випадках, коли у вас є лише одна можливість повернути результати для кількох записів окремо.