2013-03-10 62 views
1

我有3種活動類型,需要顯示有多少人蔘加了每個活動。因此,例如,我需要查詢顯示:計算每種活動類型的總數 - oracle - sql

  • 活動類型-----------總
  • 滑雪--------- 9
  • 滑雪 - ----------------- 7
  • 雪橇---------------- 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

我需要做的是統計每個獨特的個體ID實例,其中類型 - 每種類型的滑雪。我查看了許多資源,但找不到任何示例或幫助

+0

您是否可以包含數據庫模式? – JodyT 2013-03-10 00:13:12

+0

你得到的錯誤號是多少?是ORA-00979嗎? – APC 2013-03-10 04:09:31

回答

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

謝謝!正在試圖做幾個小時 – 2013-03-10 00:35:18

+0

我注意到我沒有留下一個部分。 「INDIVUDUALS」能夠多次執行相同的「EVENT」嗎?或者'BOOK_ACTIVITY'表中的'event_id','individual_id'的組合是獨特的? – JodyT 2013-03-10 00:39:58

+0

你做了什麼幫助我正確地做到了這一切,這是我所需要的,再次感謝 – 2013-03-10 00:43:47