2014-09-11 7 views
2

Как бы написать этот простой эквивалент mysql в oracle?Выберите * group by in oracle

select * from table group by column 

Кажется, он не принимает звезды полукокса, когда groupping, но это действительно не практично, чтобы выбрать столбцы один за другим, когда есть более 30 столбцов в таблице.

+1

Кажется, что вы хотите использовать 'порядок by'. – vikiiii

+1

Потому что такая группировка не имеет никакого смысла. –

+1

Каждое выражение в предложении 'select' должно быть либо литеральным, либо агрегатным, либо также отображаться в разделе' group by'. –

ответ

2
select * from table 
WHERE rowid in 
(SELECT MIN(rowid) 
FROM table 
GROUP BY column); 
1

Необходимо указать имена столбцов, явно предназначенные для группировки. Таким образом, ваш SQL в Oracle будет:

select column_list from table group by column_list 

или

select few/any columns from table group by same columns + more columns 

Кроме того, помните column_list в выберите должно быть по крайней мере, присутствует в группе по статье в том же порядке. Вы можете выбрать меньшее количество столбцов и по-прежнему группировать эти столбцы и, кроме того, другие столбцы.

Например,

select ename from emp group by ename,sal 
+0

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

+0

Я не проголосовал за это, но могу сказать, почему я не проголосовал за него: ваш запрос не является эквивалентом упомянутого запроса mysql, так как он не перечисляет все столбцы. Если группа оракула не допускает этого, должен быть другой способ получения того же результата, что и mysql. – gadelat