【发布时间】:2016-03-15 23:48:43
【问题描述】:
我正在编写一个计数查询,用于计算几年来参加活动的人数。但是有一个名为status 的列,其中包含有关出勤的额外信息。 Apology 在此人未出席时列出,因此应排除在外。 status有各种条目,包括群信、出席信息、客人状态,还有NULL条目。
问题在于,并非所有出席人数都计入完整。当status NOT LIKE 'Apology' 被删除时,它们会被完整计算。
我怎样才能让它计算所有条目?而不是从 1583 个中选择有限的 364 个。
我在 pgAdmin III v1.18.1 中使用psql v9.3.11。
以下是相关代码:
SELECT b.attendances,
COUNT(b.attendances)
FROM (
SELECT COUNT(a.event_id) as attendances
FROM (SELECT DISTINCT event_id AS event_id,
member_pers_id AS member_pers_id
FROM event_attendance
WHERE status NOT LIKE 'Apology') a
GROUP BY member_pers_id
ORDER BY attendances) b
GROUP BY attendances
ORDER BY attendances ASC
【问题讨论】:
-
你有什么问题?
-
如何让它计算所有条目。我可以添加什么来使上面的内容更清楚?
-
不需要通配符。 “道歉”是准确的文字。不全选更是个问题。
-
好的,那也行不通。不过还是谢谢。
标签: sql count where psql pgadmin