正如标题所述,我想选择每队和每年的事件数。下面的select语句正常工作,但并不完全符合我的要求。Oracle SELECT:每队和每年的事件数
SELECT
Team.team_id,
TO_CHAR(Event.START_DATE_TIME, 'yyyy') AS year,
count(event_id) AS events
FROM
Team
LEFT OUTER JOIN
Event ON Event.team_id = Team.team_id
GROUP BY
TO_CHAR(Event.START_DATE_TIME, 'yyyy'),
team_id
ORDER BY
year ASC,
team_id ASC
;
有了这个,如果我们有:
Team 1 : 1 event in 2006
Team 2 : 1 event in 2007
我们得到:
ID | Year | Events
------------------
1 | 2006 | 1
2 | 2007 | 1
而且我想获得:
ID | Year | Events
-------------------
1 | 2006 | 1
2 | 2006 | 0
1 | 2007 | 0
2 | 2007 | 1
我不知道如何修改我的请求来这样做。
OP希望看到没有任何事件的年份,所以你不能依赖'EVENT'表。 – 2010-09-03 01:29:23
因此是最后的评论。他没有说明顺便说一句,也可能是这样的情况,总有至少一个事件他想看到的年份(我无法知道:))。 – andrem 2010-09-03 01:39:24