2013-03-10 6 views
1

У меня есть 3 вида деятельности и нужно отображать, сколько людей приняли участие в каждом мероприятии. Так, например, мне нужен запрос для отображения:Общее количество каждого вида деятельности - оракул - sql

  • тип активности ----------- общая
  • Сноубординг --------- 9
  • Горные лыжи - ----------------- 7
  • Sledging ---------------- 5

до сих пор я написал следующий запрос:

SELECT type_of_activity, COUNT (DISTINCT individual_id) 
FROM activities, events, book_activity 
WHERE activities.activity_code = events.activity_code 
     AND events.event_id = book_activity.event_id; 

Это, очевидно, неверно, и возникает ошибка «not a single group function»

Что мне нужно, так это подсчет каждого уникального экземпляра индивидуального идентификатора, где тип - катание на лыжах для каждого типа. Я просмотрел много ресурсов, но не могу найти никаких примеров или помочь

+0

Не могли бы вы включить схему базы данных. – JodyT

+0

Каков номер ошибки, которую вы получаете? Это ORA-00979? – APC

ответ

1
SELECT a.type_of_activity, COUNT(ba.individual_id) 
FROM BOOK_ACTIVITY ba 
JOIN EVENTS e 
    ON e.event_id = ba.event_id 
JOIN ACTIVITIES a 
    ON a.activity_code = e.activity_code 
GROUP BY a.type_of_activity; 
+0

Спасибо! Стараясь делать это в течение часа –

+0

Я заметил, что я оставил часть. Являются ли «INDIVUDUALS» способными делать одно и то же «EVENT» несколько раз? Или комбинация 'event_id',' individual_id' в уникальной таблице 'BOOK_ACTIVITY'? – JodyT

+0

То, что вы сделали, помогло мне сделать это правильно, так что это все, что мне нужно, спасибо снова –

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