Arhn - архитектура программирования

Сортировка результатов агрегатной функции

Этот код:

SELECT ProductID, COUNT(ProductID) AS Occurrences
FROM OrderDetails
Group By ProductID;

моя попытка взять productID, которые встречаются в таблице orderDetails, подсчитать, сколько заказов содержит этот продукт, а затем отсортировать количество productID по убыванию. С точки зрения непрофессионала, я хочу показать, какие продукты являются наиболее популярными, показав их количество в порядке убывания, чтобы продукты, которые «продаются» больше всего, оказались вверху. У меня проблема в том, что когда я пытался использовать «Группировать по» с «Вхождениями», выдавало ошибку, что я не могу использовать агрегатные функции с группировкой. Если я сгруппирую по ProductID, то количество будет отображаться повсюду, а это не самый удобный способ представления информации.


Ответы:


1

Это должно работать:

SELECT ProductID, COUNT(ProductID) AS Occurrences
FROM OrderDetails
Group By ProductID
Order By COUNT(ProductID) DESC;
25.01.2017

2

То, что вы действительно хотите использовать, если хотите узнать популярность продуктов, это SUM, а не COUNT:

SELECT ProductID,
       sum(Qty) AS Occurrences
FROM   OrderDetails
Group  By ProductID
Order  By sum(Qty) DESC;

COUNT даст вам интересные результаты. Или вы можете использовать количество заказов следующим образом:

select ProductID
       count(distinct OrderNumber) as NumberOfOrders
from OrderDetails
group by ProductID
order by count(distinct OrderNumber) desc;
25.01.2017
  • Единственное, что меня смутило, так это использование Qty. Я не знаю, использовали ли вы его в качестве заполнителя для чего-то еще или чего, но в моем коде я бы использовал ProductID, потому что я хочу подсчитать (или суммировать), сколько раз каждый продукт появляется в таблице orderDetail. 26.01.2017
  • @TophHughes - я использовал Qty, потому что не уверен, как называется столбец в вашей таблице, но обычно у вас будет столбец заказанного количества в таблице OrderDetails. Рассмотрим случай, когда продукт A заказывают 10 раз, а продукт B заказывают 5 раз, и один из заказов на продукт B приходится на количество, равное 12. Я считаю, что продукт B более популярен. 26.01.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..