SQL запрос, group by date(date), hour(date) div 3

MySQL базы данных sql запрос выборка

Есть запрос:
select t1.rdate as date, t1.boiler_idboiler as cid from rec_values_has_rec_values t1, rec_values_has_rec_values t2 where t1.all_recorded_properties_idall_recorded_properties = '1' and t2.all_recorded_properties_idall_recorded_properties = '2' and t1.rdate = t2.rdate and t1.boiler_idboiler = t2.boiler_idboiler and t1.rdate > '2012-09-01 00:00:00' and t1.rdate < '2012-09-31 00:00:00' and (t1.boiler_idboiler = 1 or t1.boiler_idboiler = 2) group by date(t1.rdate), hour(t1.rdate) div 2 order by t1.rdate desc

интересует часть group by. Если после div поставить 3, то всё ок, он группирует записи по 3 часа. А вот если поставить 2, то он выводит:

'2012-09-27 02:09:12', '2', '5.6521', '64.619095'
'2012-09-27 01:09:12', '2', '5.749549999999999', '64.2536575'
'2012-09-26 23:09:12', '2', '5.603375', '64.97966'
'2012-09-26 21:09:12', '2', '5.4572', '66.646055'
'2012-09-26 19:09:12', '2', '5.408474999999999', '67.1381775'
'2012-09-26 17:09:12', '2', '5.408474999999999', '67.51335999999999'
'2012-09-26 15:09:12', '2', '5.505925', '67.4110375'

т.е. первая запись вообще ни о чём, а дальше группирует по 2, как и надо. Эффект всегда одинаковый при чётных числах после div. limit не помогает - не зависит от количества записей.
почему так?

Примечание:
PS, запрос слегка подрезан. Суть - выводить суммарные/средние значения за периоды, обозначенные в выводе.

Примечание:
MySQL.
select t1.rdate as date, t1.boiler_idboiler as cid , AVG(t1.value) as m1, AVG(t2.value) as temp from rec_values_has_rec_values t1, rec_values_has_rec_values t2 where t1.all_recorded_properties_idall_recorded_properties = '1' and t2.all_recorded_properties_idall_recorded_properties = '2' and t1.rdate = t2.rdate and t1.boiler_idboiler = t2.boiler_idboiler and t1.rdate > '2012-09-01 00:00:00' and t1.rdate < '2012-09-31 00:00:00' and (t1.boiler_idboiler = 1 or t1.boiler_idboiler = 2) group by date(t1.rdate), hour(t1.rdate) div 2 order by t1.rdate desc

Примечание:
PetSerAl (Сергей Петров): что первая запись отличается от последующих на час, когда должна на 2. С разными вариациями числа после div и limit, появляется разное количество записей с разницей в час в начале или конце выдачи.

Примечание:
Кэп.О, не помогает.
Ответы:
Что за СУБД, что за диалект SQL?
поле t1.rdate не в агрегате и не в GROUP BY.
Это не может работать ни в одной из известных мне СУБД.
2 Дополнение #3
Не должна. При использовании полей вне агрегатных функций выбор конкретной строки, из которой эти поля взять, является произвольным (гарантируется лишь то, что все такие поля будут взяты из одной и той же строки). Какая-либо корреляция выбора такой строки в различных группах не гарантируется. Также запись '2012-09-27 03:09:12' может просто отсутствовать.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.