2015-06-05 1 views
1

У меня есть запрос, похожее на это:ORA-00979, но у меня есть элементы в моей ВЫБРАТЬ в моем GROUP BY заявление

SELECT field1, 
     field2, 
     field3, 
     field4, 
     field5, 
     field6, 
     field7, 
     field8, 
     field9, 
     count(field9) 
    FROM REPORT_TABLE 
     LEFT JOIN 
     DATAMINE 
     USING (REPORT_ID) 
WHERE field1 LIKE 'MatchingText%' 
    AND TS_START between to_date('2015-05-01', 'YYYY-MM-DD') and to_date('2015-06-06', 'YYYY-MM-DD') + 0.99999999 
GROUP BY field9, 
     1, 
     2, 
     3, 
     4, 
     5, 
     6, 
     7, 
     8, 
     9; 

Когда я reun его, я получаю

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

Я я видел this вопрос, объясняя, что мне нужно включить все поля в select в group by. Я сделал это, имея номера столбцов.

Как настроить этот запрос так, чтобы я не получил ошибку 00979?

ответ

7

Я сделал это, указав номера столбцов.

Это работает в базах данных, как PostgreSQL:

SELECT abc, xyz 
FROM ... 
GROUP BY 1, 2 -- referencing abc and xyz by column number 

Но не в Oracle. В Oracle, вы не можете ссылаться на ваш пункт SELECT от вашего пункта GROUP BY, но вы должны повторять полные выражения столбцов снова

SELECT abc, xyz 
FROM ... 
GROUP BY abc, xyz 

... или в вашем случае:

[...] 
GROUP BY 
    field1, 
    field2, 
    field3, 
    field4, 
    field5, 
    field6, 
    field7, 
    field8, 
    field9; 
0

Я полагаю, вы должны просто иметь возможность группировать поля, не считая или заполнить, и не получать ошибку. Вам также может потребоваться добавить соглашение об именах, так как вы считаете поле 9, а также подсчитываете его

SELECT 
field1, 
field2, 
field3, 
field4, 
field5, 
field6, 
field7, 
field8, 
field9, 
count(field9) AS "Field9_Count" 
FROM REPORT_TABLE 
LEFT JOIN DATAMINE 
    USING (REPORT_ID) 
WHERE (field1 LIKE 'MatchingText%') AND TS_START between to_date('2015-05-01', 'YYYY-MM-DD') and to_date('2015-06-06', 'YYYY-MM-DD')+0.99999999 
GROUP BY field1, field2, field3, field4, field5, field6, field7, field8, field9 

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

  • Нет связанных вопросов^_^