День 21 з 30-денної SQL практики: обчислення середнього значення для товарів в замовленнях на Alibaba від Data Lemur.
Сьогоднішнє завдання стосується товарів, замовлених на Alibaba. Ми повинні знайти середнє значення товарів на одне замовлення. Для цього необхідно використати агрегатну функцію ‘SUM’ та обчислити просту математичну функцію для знаходження середнього.
Як вирішити задачу? Для вирішення цього завдання необхідні два стовпці з таблиці itemsperorder: itemcount_ та orderoccurrences_ для обчислення середнього значення. Також потрібна функція агрегату ‘SUM’, щоб отримати загальну суму цих стовпців, а також функція ‘ROUND’ для округлення результату до одного знака після коми.
Як виглядають дані:
Рішення:
SELECT ROUND(CAST(SUM(item_count * order_occurrences) AS numeric) / SUM(order_occurrences), 1) AS items_per_order_mean
FROM order_occurences;
Результат:
Пояснення:
По-перше, запит додає стовпці itemcount_ та orderoccurrences, а потім множить їх, щоб отримати загальну кількість товарів, оскільки для обчислення загальної кількості товарів потрібно помножити кожен _itemcount_ на відповідне orderoccurrences. По-друге, запит за допомогою функції **‘CAST’** забезпечує, що результат буде числовим і зручним для функції **‘ROUND’, оскільки SQL не приймає типи **double precision для округлення. По-третє, запит додає стовпець _orderoccurrences, щоб отримати загальну кількість замовлень для обчислення середнього, а потім ділить загальну кількість товарів на загальну кількість замовлень для обчислення середнього результату. Наприкінці запит округляє результат за допомогою функції **‘ROUND’_** до одного знака після коми.
Дякую за прочитання цього посту, сподіваюся, ви дізналися щось нове або краще зрозуміли, як працюють математичні функції обчислень у SQL. Це мій подарунок світу, тому що я багато чого отримав від світу в цьому житті.
Привіт усім, з Коста-Ріки Абдіель!
Перекладено з: 30 days SQL Challenge/ Day 21