Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.24;
Скачать: CL | DM;

Вниз

sql-запрос   Найти похожие ветки 

 
LDV   (2011-01-11 21:36) [0]

Есть 2 таблицы:

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

заказы (id, prod_id)

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

СУБД MS SQL

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

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


 
antonn ©   (2011-01-11 23:00) [1]

SELECT tw.*,COUNT(zk.prod_id) AS towar_count FROM `zakaz` zk
LEFT JOIN `towar` tw ON tw.id=zk.prod_id
GROUP BY zk.prod_id ORDER BY towar_count DESC LIMIT 0,1

навскидку, мускл. хз насколько оптимально


 
tesseract ©   (2011-01-11 23:43) [2]

Без количества заказанного,  всё равно ничего путного не выйдет. Можно через второй вложенный добавив его как 1 и поверх вычесть сумму - но это уже кривошипный механизм.


 
LDV   (2011-01-12 00:14) [3]

сделал так:

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


 
Ega23 ©   (2011-01-12 00:32) [4]


> antonn ©   (11.01.11 23:00) [1]

Он же MSSQL внятно указал, там LIMIT вроде как нету.


> Без количества заказанного,  всё равно ничего путного не
> выйдет.

Так ведь MAX же нужен.
А, понял, ты имел ввиду количество единиц в одном заказе?


 
turbouser ©   (2011-01-12 01:08) [5]


> tesseract ©   (11.01.11 23:43) [2]
>
> Без количества заказанного,  всё равно ничего путного не
> выйдет

select top(1) t.type, count(z.id) from zakaz z inner join tovar t on t.id=z.prod_id
group by t.type
order by 2 desc --по индексу вроде должно проканать.


 
DiamondShark ©   (2011-01-12 01:16) [6]

select top 1 товары.type
from товары
inner join заказы on товары.id=заказы.prod_id
group by type
order by COUNT(заказы.id) DESC


 
antonn ©   (2011-01-12 01:19) [7]


> Он же MSSQL внятно указал, там LIMIT вроде как нету.

нету, но не критично


> А, понял, ты имел ввиду количество единиц в одном заказе?

я так понял что тот товар что чаще всего в заказах бывает


 
tesseract ©   (2011-01-12 10:34) [8]


> А, понял, ты имел ввиду количество единиц в одном заказе?


Да - я имел в виду всё равно придется структуру переделывать :-)


 
Anatoly Podgoretsky ©   (2011-01-12 12:22) [9]


> LDV   (12.01.11 00:14) [3]


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

Что за СУБД такая экзотическая, что позволяет не указывать в
GROUP BY список возвращаемых полей. И как тогда интерпретировать результат с произвольными type - разве если после литра только.

Такую СУБД на помойку



Страницы: 1 вся ветка

Текущий архив: 2011.04.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
15-1294649384
tat'yanka
2011-01-10 11:49
2011.04.24
Дифрагментация дискового пространства


2-1295522746
cyber-pilot
2011-01-20 14:25
2011.04.24
Вопрос про работу эксепшенов


6-1236668556
К
2009-03-10 10:02
2011.04.24
EIdConnClosedGracefully Connection Closed Gracefully


2-1295358908
Сергей
2011-01-18 16:55
2011.04.24
Как запустить окно (winapi) по клику кнопки?


2-1295426993
Евгений07
2011-01-19 11:49
2011.04.24
как обеспечить доступ к данным между родительскими формами