SQL возвращает полные объекты (*) из отдельных столбцов

Я ищу решение, касающееся SQL Query для Oracle DB, которое возвращает объекты DISTINCT full из многих столбцов, например:

SELECT DISTINCT mt.column1, mt.column2, mt.column3 FROM MyTable mt;

Но мне нужны полные объекты, такие как SELECT * FROM MyTable

Есть ли способ получить такой эффект, используя обычные операторы SQL?

Заранее спасибо! :)


person Rafcik    schedule 09.06.2015    source источник
comment
Ваш вопрос не ясен. Пожалуйста, обновите его, чтобы сообщить нам, что вы хотите.   -  person Tim Biegeleisen    schedule 09.06.2015
comment
Вы можете использовать Group By mt.column1, mt.column2, mt.column3. Это может помочь, если я правильно понимаю вашу проблему.   -  person Nikhil Batra    schedule 09.06.2015
comment
@NikhilBatra, действительно ли Oracle обманывает, когда дело доходит до GROUP BY? (Как и некоторые другие продукты dbms...)   -  person jarlh    schedule 09.06.2015
comment
Насколько я знаю, oracle — самая честная и искренняя СУБД, соблюдающая все правила, так что назвать ее читерской я не могу :P   -  person Nikhil Batra    schedule 09.06.2015
comment
Вы хотите исключить строки со значениями NULL в любом из столбцов таблицы?   -  person Radu Gheorghiu    schedule 09.06.2015


Ответы (1)


Я думаю, вы ищете такой запрос:

SELECT *
FROM (
    SELECT 
        *, ROW_NUMBER() OVER (PARTITION BY mt.column1, mt.column2, mt.column3 ORDER BY mt.column1, mt.column2, mt.column3) As Seq
    FROM 
        MyTable mt) AS DT
WHERE
    Seq = 1;
person shA.t    schedule 09.06.2015
comment
Я думаю, что нет, и вам нужно сделать это по-другому;). - person shA.t; 09.06.2015