2015-03-24 2 views
0

У меня есть набор записей, и я хотел бы их группировать по дням, используя поле DATETIME в этом формате yyyy-MM-dd HH:mm:ss.GROUP BY и AS column

В MySQL GROUP BY использует результаты SELECT запроса и применяет GROUP BY в данный момент:

SELECT date(date_field) AS d, COUNT(*) FROM my_table GROUP BY d; 

OrientDB, кажется, не применять GROUP BY на результаты:

SELECT date_field.format('yyyy-MM-dd') AS d, COUNT(*) FROM my_table GROUP BY d; 

Этот запрос ничего не возвращает, потому что d нет в том же формате, что и date_field.

Любая идея?

Благодаря

+2

try 'GROUP BY date_field.format ('yyyy-MM-dd')' – dasblinkenlight

+0

Это не работает в orientDB. –

ответ

2

Ваш формат данных yyyy-MM-dd HH:mm:ss

На следующий день приходит на место 9 слева, так что вы можете использовать запрос

SELECT date_field FROM my_table GROUP BY LEFT(`date_field`, 9); 

Надежда это поможет вам

+0

спасибо, Это не работает на OrientDB. Я получаю эту ошибку: 'Ошибка при анализе команды в позиции # 40: Недопустимое ключевое слово 'DATE_FIELD'' –

0

I решена проблема с использованием переменных LET:

SELECT date_field, COUNT(*) FROM my_table LET $day = date_field.format('yyyy-MM-dd') GROUP BY $day;