Получите данные 10 лучших пользователей по количеству продаж в My Sql - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть таблица 'продажи' и данные, подобные этой схеме:

User    | Amount| Month
user a      100     1
user b      240     1
user c      120     1
user a      200     2
user b      130     2
user c      240     2

Как получить ТОП 5 пользователей на основе общих продаж каждый месяц, я пробовал использовать такой запрос, но всегда показывалосьошибка

SELECT TOP10 USER, 
   SUM(amount) amount
    FROM   sales LIMIT 10
WHERE  MONTH BETWEEN 1 AND 12
GROUP BY sales
ORDER BY 2 DESC

И результат должен быть:

User a | 300
User b | 370
User c | 360

Таким образом, порядок должен быть: B, C, A

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Вы можете попробовать ниже

SELECT USER, SUM(amount) amount
FROM   sales 
WHERE  MONTH BETWEEN 1 AND 12
GROUP BY USER
ORDER BY amount DESC
0 голосов
/ 21 ноября 2018

Вы можете сделать GROUP BY на User и использовать SUM(amount), чтобы получить total_sales на пользователя.Теперь просто отсортируйте набор результатов по total_sales в порядке убывания, чтобы сначала получить самые высокие продажи.

Мы можем использовать LIMIT 10, если вы хотите получить только первые 10.

SELECT User, 
       SUM(amount) AS total_sales 
FROM sales 
WHERE MONTH BETWEEN 1 AND 12
GROUP BY User
ORDER BY total_sales DESC
LIMIT 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...