Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > запрос самый частопокупаемых товаров


Автор: NieL 11.1.2011, 22:29
Есть 2 таблицы:

товары (id, name, type)

заказы (id, prod_id)

задача: вывести тип товара, который чаще всего заказывают (товары.type)

СУБД MS SQL Server

Пытаюсь сделать через вложенный запрос, но ничего не выходит (нужно учесть что несколько товаров могут иметь одинаковое максимально значение)

SELECT type FROM товары WHERE id = (SELECT TOP 1 prod_id FROM заказы GROUP BY prod_id ORDER BY COUNT(prod_id) DESC)

Автор: Deniz 13.1.2011, 07:24
Цитата(NieL @  12.1.2011,  00:29 Найти цитируемый пост)
(нужно учесть что несколько товаров могут иметь одинаковое максимально значение)
и какой выводить?
Если все, то как-то так:
Код
select t.type, count(z.prod_id)
from товары t
  join заказы z on t.id = z.prod_id
group by t.type
having count(z.prod_id) = (SELECT TOP 1 COUNT(prod_id) FROM заказы GROUP BY prod_id ORDER BY COUNT(prod_id) DESC)

Автор: Zloxa 13.1.2011, 10:30
Цитата(Deniz @  13.1.2011,  07:24 Найти цитируемый пост)
Если все, то как-то так:

Код

select top 1 WITH TIES t.type, count(z.prod_id) cnt
from товары t
  join заказы z on t.id = z.prod_id
group by t.type
order by cnt desc

?

Автор: Deniz 13.1.2011, 12:21
Zloxa, к сожалению с конструкцией WITH TIES не знаком.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)