2015-03-03 2 views
-1

Нужно ли использовать GROUP BY, пока вы используете агрегированную функцию со столбцом в Oracle?Нужно ли использовать GROUP BY в Oracle?

В MySQL, если я не использую его, он работает нормально, но в Oracle это дает мне ошибку.

+1

Пожалуйста, измените вопрос и включить запрос вы обеспокоены. Благодарю. –

ответ

6

При использовании агрегатных функций всегда следует использовать GROUP BY. Не использовать GROUP BY - это нестандартное расширение SQL, допускаемое MySQL.

RANT

ИМХО, это расширение глупое, прямо опасная и никогда не должно использоваться на всех, потому что MySQL возвращает значения для случайной строки для необобщенных столбцов.

END_OF_RANT

+0

Я спрашиваю о оракуле ... Я знаю его плохой логический. Я не знаю об оракуле. Может ли это дать ошибку в оракуле? – Yogesh

+2

Да, это необходимо - не только в Oracle, но и во всех других СУБД (кроме MySQL). –

+2

В дополнение к тому, что сказал Фрэнк, единственный раз, когда вам не нужно предложение group by в Oracle, вы можете агрегировать по всему набору результатов - например. 'select max (col1) from some_table'. – Boneist

8

Это необходимо если выбрать по крайней мере один столбец без агрегатной функции.

Таким образом, это будет работать:

select sum(col_1), avg(col_2) from table_1; 

а в этом обыкновения:

select sum(col_1), avg(col_2), col_3 from table_1; 
Смежные вопросы