Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Группировки (Дмитрий) 19/01/2006 - 21:42:48
      Re: Группировки (Dinky) 19/01/2006 - 22:42:57
      Re: Группировки (Дмитрий) 28/01/2006 - 10:31:26
      Re: Группировки (Дмитрий) 28/01/2006 - 10:43:58
      Re: Группировки (Dinky) 30/01/2006 - 06:27:53
      Re: Группировки (Dinky) 30/01/2006 - 06:29:13

> Original message text:
> From: Дмитрий - 19/01/2006 - 21:42:48
> Subject:Группировки
> -----------------
> На заданные вопросы я знаю ответ, но мой вариант громоздкий и некрасивый состоит из нескольких страниц кода на php и множества запросов к базе, вызываемых в цикле. Хотелось бы почерпнуть высокого искусства и мастерства. Можно ли следующие задачи решить одним запросом?
>
> Имеется база, допустим, автомобильная барахолка. В результате запроса хочется получить количество предложений для каждой модели автомобиля. Например, Toyota – 100 штук, Nissan – 50 штук и тд. При этом предложения должны быть не устаревшие, допустим, не старше 10 дней. Так вот если, например, окажется, что все имеющиеся в базе Honda старше 10 дней, то в результате хотелось бы получить кроме прочего Honda – 0 штук.
>
> Первый запрос, который приходит мне в голову не дает в результате позиции, с нулевым количеством, поэтому мне приходится сначала узнавать список всех имеющихся моделей и в дальнейшем для каждой модели формировать в цикле свой запрос и узнавать count(*)
>
> Второй вопрос. Предположим, имеется база, в которую пишется лог некоторых событий. Кроме прочих полей в базе имеется поле timestamp. Хочется одним запросом получить количество событий за каждый день (каждую неделю и тп) Еще один тонкий момент - в какой-то из дней может вообще не произойти ни одного интересуемого меня события. Так вот было бы совсем шоколадно, учесть и этот момент в том же запросе и получить за этот день ноль.
>
> Как я поступаю в этом случае, я вообще никому не скажу, чтобы не опозориться :-)
>
>


From: Дмитрий - 28/01/2006 - 10:31:26
Subject:Группировки
-----------------
1) Многократно и по-разному проверял. Читал и советовался с людьми. Не будет в первом примере она выводить модели автомобилей, которых получилось 0 штук для заданного условия времени. Поэтому мне все еще приходится делать селект по всей базе без условия, группировать по модели, а потом в цикле для каждой полученной модели делать селекты типа такого
SELECT count(*) FROM cars WHERE (model = "Toyota") AND (mydate < "20060120112926")

Тогда я получаю
Toyota - 10
Honda - 5
Nissan - 0 (то есть нет свежих предложений по Nissan и это важно)

Так вот все еще интересуюсь, можно ли написать в одном селекте так, чтобы в ответе нулевые позиции не потерялись?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
26178



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |