2013-03-10 41 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