2015-07-28 4 views
-1

Мне нужно получить заголовок, количество и процент от таблицы REPORT_VIEW_PAGE. Это прекрасно работает.Ошибка при восстановлении значений из базы данных

SELECT DISTINCT TITLE, COUNT(TITLE) AS tot, ROUND(COUNT(TITLE)/(
SELECT COUNT(*) FROM REPORT_VIEW_PAGE), 4) AS per 
FROM REPORT_VIEW_PAGE 
WHERE DAYCOUNT > '0' 
GROUP BY TITLE 
ORDER BY TITLE ASC 

Но если пытались получить ID и TYPE как

SELECT DISTINCT TITLE, ID, TYPE, COUNT(TITLE) AS tot, ROUND(COUNT(TITLE)/(
SELECT COUNT(*) FROM REPORT_VIEW_PAGE), 4) AS per 
FROM REPORT_VIEW_PAGE 
WHERE DAYCOUNT > '0' 
GROUP BY TITLE 
ORDER BY TITLE ASC 

я получаю ошибку:

ORA-00979: not a GROUP BY expression 00979. 00000 - "not a GROUP BY expression" *Cause:
*Action: Error at Line: 12 Column: 24

кто может помочь.

+2

Пожалуйста, измените вопрос с образцами данных и желаемых результатов. Ясно, что если вы добавите 'id' и' type' в 'group by', вы устраните проблему. Но это, вероятно, не тот запрос, который вы хотите. –

+1

В дополнение к тому, что сказал Гордон, если вы делаете «группу», тогда «отдельный» не нужен, запутанный и его нужно удалить. – Boneist

ответ

1

вам нужно группе дополнительных столбцов

SELECT TITLE, ID, TYPE, COUNT(TITLE) AS tot, ROUND(COUNT(TITLE)/(
SELECT COUNT(*) FROM REPORT_VIEW_PAGE), 4) AS per 
FROM REPORT_VIEW_PAGE 
WHERE DAYCOUNT > '0' 
GROUP BY TITLE, Id, TYPE 
ORDER BY TITLE ASC 
+0

Спасибо. Работает отлично. – drup

+0

может оценивать как правильный ответ – davegreen100

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