计算分组SQL Count函数的不同值输出

时间:2016-09-28 11:44:45

标签: sql postgresql

我有一个数据库,其中包含有关志愿者及其参与一系列活动的信息。

以下查询为我提供了他们的姓名和总出勤率列表

SELECT 
     volunteers.last_name, 
     volunteers.first_name, 
     count (bookings.id)
FROM 
     volunteers, 
     bookings
WHERE 
     volunteers.id = bookings.volunteer_id
GROUP BY 
     volunteers.last_name, 
     volunteers.first_name

我希望结果表显示不同的出席人数和每人的出席人数;因此,如果五个人做了一个事件,它会在第一列中显示1,在第二列中显示5,依此类推。

由于

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你需要我称之为"直方图直方图"查询:

select numvolunteers, count(*) as numevents, min(eventid), max(eventid)
from (select b.eventid, count(*) as numvolunteers
      from bookings b
      group by b.eventid
     ) b
group by numvolunteers
order by numvolunteers;

第一列是为#34;事件"预订的志愿者人数。第二个是发生这种情况的事件数。最后两列只是具有给定数量志愿者的事件的例子。