2015-03-10 2 views
0

Мой текущий запрос MySQL выглядитконденсаторные MySQL Query By Устранение избыточности

SELECT AVG(TIMEDIFF(time1, time2)), YEAR(time2), MONTH(time2), DAY(time2), HOUR(time2)  
FROM rr 
WHERE time2 IS NOT NULL  
GROUP BY  
YEAR(time2),  
MONTH(time2,  
DAY(time2),  
HOUR(time2); 

Что я ищу, чтобы сделать это прямо сейчас заказать группу по результатам по дате на основе новой группы по результатам. Есть ли способ сделать это, не указывая

ORDER BY 
    YEAR(time2) 
    ... 
    HOUR(time2) 

сначала и снова?

Кроме того, есть ли способ вернуть поле DateTime вместо того, чтобы восстанавливаться с помощью столбцов YEAR(time2), MONTH(time2)... HOUR(time2)? Кажется, что существует достаточное количество избыточности, которое я могу уменьшить.

ответ

0

Вы можете просто сделать:

order by min(time2) 

В MySQL, можно также сделать:

order by time2 

Но я рекомендую использовать функцию агрегации.

Что касается второй части вашего вопроса, вы можете сделать:

select date(date_format(time2, '%Y:%m:%d %h:00:00')) 
+0

Есть ли причина для анонимного downvote? –

+0

* Есть ли причина анонимного понижения? * Я мог только догадываться: ревность. Но ваш ответ в порядке: D – Rizier123

Смежные вопросы