Нужно ли использовать GROUP BY
, пока вы используете агрегированную функцию со столбцом в Oracle?Нужно ли использовать GROUP BY в Oracle?
В MySQL, если я не использую его, он работает нормально, но в Oracle это дает мне ошибку.
Нужно ли использовать GROUP BY
, пока вы используете агрегированную функцию со столбцом в Oracle?Нужно ли использовать GROUP BY в Oracle?
В MySQL, если я не использую его, он работает нормально, но в Oracle это дает мне ошибку.
При использовании агрегатных функций всегда следует использовать GROUP BY
. Не использовать GROUP BY
- это нестандартное расширение SQL, допускаемое MySQL.
RANT
ИМХО, это расширение глупое, прямо опасная и никогда не должно использоваться на всех, потому что MySQL возвращает значения для случайной строки для необобщенных столбцов.
END_OF_RANT
Я спрашиваю о оракуле ... Я знаю его плохой логический. Я не знаю об оракуле. Может ли это дать ошибку в оракуле? – Yogesh
Да, это необходимо - не только в Oracle, но и во всех других СУБД (кроме MySQL). –
В дополнение к тому, что сказал Фрэнк, единственный раз, когда вам не нужно предложение group by в Oracle, вы можете агрегировать по всему набору результатов - например. 'select max (col1) from some_table'. – Boneist
Это необходимо если выбрать по крайней мере один столбец без агрегатной функции.
Таким образом, это будет работать:
select sum(col_1), avg(col_2) from table_1;
а в этом обыкновения:
select sum(col_1), avg(col_2), col_3 from table_1;
Пожалуйста, измените вопрос и включить запрос вы обеспокоены. Благодарю. –