PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Itan
Отправлено: 23 Октября, 2016 - 08:18:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Здравствуйте! Помогите составить запрос.
Задача: узнать среднюю цену автомобиля по названию марки, модели и году выпуска
Что имеем:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. table
  3. mark model  year   price
  4. vaz    2110   2001   65000
  5. vaz    2110   2001   66000
  6. vaz    2110   2001   60000
  7. vaz    2109   2000   60000
  8. vaz    2109   2000   70000
  9. vaz    2109   2003   75000
  10.  


По поводу единичного запроса - все легко: используем AVG и WHERE `mark` = "vaz", `model` = "2110", `year` = "2001"

Но как составить запрос, чтобы он мне дал средние цены сразу по всем моделям, что-то типа:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. vaz => 2110 => 2000 => 70000
  3.                          2001 => 75000
  4.                          2002 => 80000
  5.            2109 => 1993 => 33000
  6.                          1999 => 45000
  7.                          2002 => 70000
  8.  
 
 Top
Мелкий Супермодератор
Отправлено: 23 Октября, 2016 - 11:55:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 11520
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 557 раз(а)




Всё тот же avg, но теперь с явной группировкой. group by one,second,third


-----
PostgreSQL DBA
 
 Top
Itan
Отправлено: 24 Октября, 2016 - 17:53:17
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Нифига, как все просто. Спасибо! Тогда еще вопрос: такой запрос дает нам текущую среднюю цену, а как правильно организовать хранение недельной и месячной средней цены? Интересует именно структура таблиц, пока на ум приходит только сделать тридцать столбцов, и каждый новый день перезаписывать данные, но блин, там будет 10000 средних цен, и мне кажется, это не панацея. Подскажите.
 
 Top
Мелкий Супермодератор
Отправлено: 24 Октября, 2016 - 18:01:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11520
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 557 раз(а)




Поподробнее о задаче. Пока не понятно, сколько данных, как часто будут обновляться.


-----
PostgreSQL DBA
 
 Top
Itan
Отправлено: 24 Октября, 2016 - 18:05:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Итак. Мы имеем парсер сайта объявлений по продаже авто. На сайте около 60 тысяч объявлений, все они записываются в базу. Обновление каждые полчаса по крону с TRUNCATE таблицы. Что мне нужно: для каждой марки, каждой модели, каждого года узнать среднюю цену за: неделю, месяц, и текущую. Из 60 тысяч объявлений получается примерно 8000 средних цен. Но я планируют парсить еще несколько сайтов в дальнейшем. С текущей средней ценой мы разобрались выше, еще раз спасибо, а как организовать вычисление и хранение средней цены за неделю и за месяц?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB