Выборка поля по максимальному показателю другого поля - MySQL
Формулировка задачи:
Здравствуйте. Подскажите, как можно сделать выборку, например, покупателя по максимальному критерию количества товаров, которые он купил? Но при этом нужно учитывать тот факт, что в таблице один пользователь находиться в нескольких записях(это видно на скриншоте). Т.е по короткому, нужно выбрать самого заядлого покупателя...
И таким же макаром и самый покупаемый товар...
А еще можно ли выбрать самый любимый товар покупателя?) было бы не плохо)
sold_id - номер покупки
product_id_ref - это айди товара из другой таблицы products
product_name - в принципе это есть в той же таблице products
product_count - количество купленного товара
product_sum - сумма этих товаров (конкретного, а не всех, что он купил, т.е купил столько то этого и столько то другого и все это каждый раз добавляет новую запись.
buyer_name - имя покупателя
shopping_time - время покупки в datatime
Решение задачи: «Выборка поля по максимальному показателю другого поля»
textual
Листинг программы
SELECT buyer_name, SUM(Product_count) AS NUMBER FROM tests2 GROUP BY buyer_name ORDER BY NUMBER DESC LIMIT 1
Объяснение кода листинга программы
buyer_name
- название таблицы или базы данных, откуда производится выборкаProduct_count
- название поля, по которому производится группировка данныхSUM
- функция агрегирования, используется для подсчета суммы значений поляProduct_count
NUMBER
- псевдоним (alias) для поля, содержащего сумму значений поляProduct_count
tests2
- название таблицы, из которой производится выборкаGROUP BY buyer_name
- группировка данных по полюbuyer_name
ORDER BY NUMBER DESC
- сортировка данных по полюNUMBER
в порядке убыванияLIMIT 1
- ограничение выборки одной строкой- В результате выполнения запроса будет возвращено одно поле -
buyer_name
, содержащее имя покупателя с максимальным количеством продуктов
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д