2015-05-07 3 views
0

Я хочу запустить запрос, как показано нижеSELECT DISTINCT на нескольких столбцах вместе с другими колонками

select distinct (columnA, columnB, columnC), columnD from MY_TABLE where columnA IS NOT NULL AND columnB IS NOT NULL AND columnC is NOT NULL; 

Я только хочу отличие от Columna, columnB и columnC, а не на columnD. Но разработчик SQL указывает ошибку сразу после columnA, Как это исправить?

Я пытался исправить мой запрос с помощью GROUP BY

select columnA, columnB, columnC, (select count(*) from TABLE2 WHERE table2columnA = myTable.columnA) from MY_TABLE myTable where columnA IS NOT NULL AND columnB IS NOT NULL AND columnC is NOT NULL GROUP BY columnA, columnB, columnC; 

Обратите внимание, что мой columnD на самом деле другой оператор выбора? Но это дает мне ошибку

ORA-00979: not a GROUP BY expression 
00979. 00000 - "not a GROUP BY expression" 

Это не дубликат, что другой вопрос

+1

Спасибо, Vikrant. Я не могу отметить, что имеет дубликат еще.^ – MaxVerro

+1

Нет. Это не дубликат этого вопроса. Я пытаюсь получить отличные от столбцов (A, B & C) и нечеткий столбец D. – yalkris

+0

Предположим, что у вас есть кортежи (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 5) и (0, 2, 3, 4). Что вы ожидаете от своего запроса? – LSerni

ответ

0
SELECT DISTINCT a,b,c FROM t 

примерно эквивалентно:

SELECT a,b,c FROM t GROUP BY a,b,c 

Это хорошая идея, чтобы привыкнуть к синтаксис GROUP BY, поскольку он более мощный.

Пожалуйста, смотрите этот post:

Возможный дубликат?

+0

Я попробовал группу, как вы сказали. Я изменил свой вопрос выше, пожалуйста, взгляните – yalkris

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