我有一个数据库,其中包含有关志愿者及其参与一系列活动的信息。
以下查询为我提供了他们的姓名和总出勤率列表
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,依此类推。
由于
答案 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;事件"预订的志愿者人数。第二个是发生这种情况的事件数。最后两列只是具有给定数量志愿者的事件的例子。