0

イベントにボランティアとして参加しているメンバーの数を含める必要があるビューがあります。「単一グループのグループ関数ではありません」というエラーが表示されます。これを解決する方法はありますか?

CREATE VIEW atbyrd.events__view AS
SELECT e.name, e."DATE", b."LIMIT",b.allocated_amount, COUNT(em.member_id), e.comments
FROM events e INNER JOIN budgets b ON b.event_id = e.id
INNER JOIN event_members em ON em.event_id  = e.id;
4

2 に答える 2

1

分析機能を使用できますcount()

SELECT e.name
     , e."DATE"
     , b."LIMIT"
     , b.allocated_amount
     , COUNT(em.member_id) over ( partition by em.event_id )
     , e.comments
  FROM events e 
 INNER JOIN budgets b 
    ON b.event_id = e.id
 INNER JOIN event_members em 
    ON em.event_id  = e.id;

簡単に言えば、これはメンバーごとの数をカウントしますがevent_id、集計関数ではないため、GROUP BY は必要ありません。ごとに同じ値を受け取りますevent_id

于 2012-11-26T21:26:31.647 に答える
1
SELECT e.name, 
       e."DATE", 
       b."LIMIT",
       b.allocated_amount, 
       (select COUNT(member_id) from event_members) as mem_count, 
       e.comments
FROM events e
INNER JOIN budgets b ON b.event_id = e.id
INNER JOIN event_members em ON em.event_id  = e.id;
于 2012-11-26T21:20:30.917 に答える