Выберите максимальное значение из таблицы по категории

Купил Х разИмяПроизводитель
19Оливец Faber-Castell, Castell 9000 FFaber Castell
14Цвет акриловых глянцевых фарб C. Kreul El Greco 18 цветовКреул
10Набір акварельних фарб "Класика", Галерея РОСА, 12кол.РОСА ГРУП
7Профессиональный акварельный пензлик Winsor & Newton - One StrokeВинзор и Ньютон
6Ластик электрический DerwentДеруэнт
6Гумка Koh-i-Noor 300/80 СлонКох-И-Нур
5Набор маркеров Copic Sketch Set Skin Tones, 6 шт.Копик
4Склейка для акварели Derwent Inktense 300г 20лДеруэнт
4Пастель Van Gogh Royal Talens 60 цветовКоролевские таланты
4Блокнот American Crafts Journal StudioАмериканские ремесла
3Цветные масла Prismacolor Premier 72 цвета в металевом пеналеПризмаколор

Я создал запрос, который генерирует результаты, подобные приведенным выше. И, как видите, есть две строки, в которых Derwent указан как Производитель. Я хотел бы оставить только строки от каждого производителя, где «Куплено X раз» (столбец, сгенерированный Count()) максимально. Как я могу это сделать? В результате хочу получить

Купил Х разИмяПроизводитель
19Оливец Faber-Castell, Castell 9000 FFaber Castell
14Цвет акриловых глянцевых фарб C. Kreul El Greco 18 цветовКреул
10Набір акварельних фарб "Класика", Галерея РОСА, 12кол.РОСА ГРУП
7Профессиональный акварельный пензлик Winsor & Newton - One StrokeВинзор и Ньютон
6Ластик электрический DerwentДеруэнт
6Гумка Koh-i-Noor 300/80 СлонКох-И-Нур
5Набор маркеров Copic Sketch Set Skin Tones, 6 шт.Копик
4Пастель Van Gogh Royal Talens 60 цветовКоролевские таланты
4Блокнот American Crafts Journal StudioАмериканские ремесла
3Цветные масла Prismacolor Premier 72 цвета в металевом пеналеПризмаколор

Запрос:

SELECT Count(Goods.Contract) AS [Bought X times], Goods.Goods_name AS [Name], Producer.Company AS [Manufacturer]
FROM Producer INNER JOIN (Goods INNER JOIN [Goods-Check] ON Goods.Goods_code= [Goods-Check].Goods_code) ON Producer.Contract= Producer.Contract
GROUP BY Goods.Goods_name, Producer.Company
ORDER BY Count(Goods.Contract) DESC;

Пожалуйста, загружайте не изображения, а ваш запрос и ожидаемый результат в виде текста.

Jonas Metzler 14.05.2022 11:41

@JonasMetzler обновил мой вопрос

Kateryna Borysova 14.05.2022 12:07

Ваш запрос хранится как запрос MS Access?

Salman A 14.05.2022 12:11

@SalmanA Да, это так

Kateryna Borysova 14.05.2022 12:12
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
4
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Старомодное решение состоит в том, чтобы фильтровать строки, где другая строка с большим значением делает not exists:

SELECT *
FROM Query1 AS t
WHERE NOT EXISTS (
    SELECT 1
    FROM Query1 AS x
    WHERE x.Manufacturer = t.Manufacturer
    AND   x.[Bought X times] > t.[Bought X times]
)

Это стандартный SQL, не уверен, что он работает в MS Access.

Большое спасибо! Это работает :) Есть ли способ выполнить все в одном запросе?

Kateryna Borysova 14.05.2022 12:20

Другие вопросы по теме