Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.04.24;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.003 c
15-1294911645
stenfit
2011-01-13 12:40
2011.04.24
работа с zip


3-1257170221
mom
2009-11-02 16:57
2011.04.24
Ehlib 4.0 порядок следования столбцов


6-1236835001
novai
2009-03-12 08:16
2011.04.24
TIdFTP циклическое удаление


15-1294574487
student1993
2011-01-09 15:01
2011.04.24
связать таблицы


6-1191246733
__Unnamed__
2007-10-01 17:52
2011.04.24
Вопрос про сокеты, а точнее про FD_CLOSE и FD_READ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский