MS Access 2013: 10 лучших товаров, продаваемых в каждой стране - PullRequest
0 голосов
/ 27 апреля 2020

Мне нужно написать запрос, чтобы получить 10 лучших товаров, проданных в каждой стране

Тип базы данных - MS Access 2013

Имя таблицы: Поле страны SoldItems Элемент

Запрос

В этом запросе я получу все проданные товары в каждой стране по убыванию по количеству проданных предметов в каждой стране, мне нужны только 10 лучших предметов, проданных в каждой стране

ВЫБРАТЬ count (*) As CountOfItemsSold, Country, Item из группы SoldItems по Country, Item

заказ на 2,1 дес c

1 Ответ

0 голосов
/ 28 апреля 2020

Вам нужно будет использовать подзапрос, который возвращает 10 лучших элементов, сгруппированных по странам, и использовать его в качестве основы для фильтра. Что-то вроде:

SELECT S.Country, S.Item, COUNT(S.Item) AS CountOfItem
FROM SoldItems AS S
GROUP BY S.Country, S.Item
HAVING S.Item In (SELECT TOP 10 R.Item
    FROM SoldItems AS R
    GROUP BY R.Country, R.Item
    HAVING R.Country=S.Country
    ORDER BY COUNT(R.Item) DESC
)
ORDER BY S.Country, COUNT(S.Item) DESC;

Обратите внимание, что если есть товары с одинаковым количеством проданных товаров, вы получите более 10 записей, возвращенных на страну.

С уважением,

...