2013-12-16 2 views
2

Практика вопроса для окончательного экзамена SQL. Перечислите общее количество сборов (штрафов и сборов) и общую сумму, принадлежащую классификации преступлений.Группа не будет работать в моем заявлении. ПОЧЕМУ

Это мой код. Пожалуйста, скажите мне, почему он не работает.

select classification, fine_amount+court_fee as "collections amount", fine_amount - amount_paid as "Amount owned" 
from crime_charges join crimes using (crime_id) 
group by classification; 

Ошибка брошено:

ORA-00979: not a GROUP BY expression 
00979. 00000 - "not a GROUP BY expression" 
*Cause:  
*Action: 
Error at Line: 1 Column: 23 
+0

Попробуйте это без кавычек вокруг псевдонимов (пример: 'fine_amount + court_fee в качестве суммы коллекций'). –

ответ

2

Попробуйте это:

SELECT classification, SUM(fine_amount+court_fee) AS "collections amount", 
     SUM(fine_amount - amount_paid) AS "Amount owned" 
FROM crime_charges 
INNER JOIN crimes USING (crime_id) 
GROUP BY classification; 
0

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

+0

Это специфическая проблема оракула. он не использует MySQL – 75inchpianist

+0

OP помечен как MySQL, а не Oracle. –

+0

не означает, что это MySQL. Вы верите в каждый тег, который вы видите? ORA-00979 является ошибкой ORAcle – 75inchpianist

0

попробовать этот запрос:

select classification, fine_amount+court_fee as "collections amount", fine_amount - amount_paid as "Amount owned" 
from crime_charges join crimes using (crime_id) 
group by classification,fine_amount,court_fee,amount_paid; 
0

@shabeer, я ценю ваш интерес к вашему обучению. Но тем не менее, всегда разумно вкладывать свое время в теоретическое обучение. Ваш вопрос очень важен. Запрос выбора, который использует group by, может содержать только агрегатные функции и столбцы, сгруппированные в предложении select. Представьте себе, как база данных знает, чтобы выбрать одно значение столбца fine_amount, когда и уже сгруппированы данные с столбцом classification. Это может быть либо max, min, sum .. и т. Д. Не советую, но я просто чувствую, что когда вы начнете разбираться в основах, вы почувствуете разницу. Когда вы ищите интернет для решения, он может стать привычкой!

Всего наилучшего!

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