如何过滤掉一个组?

大家好,

我尝试在数据探索选项卡中过滤掉我创建的名为“Employees”的组,我哪里做错了?如何排除我创建的组?

    SELECT 
    sum(p.score) / count(p) as "每篇帖子平均得分", 
    count(p.id) as 帖子数量,
    p.user_id
FROM posts p
JOIN users u ON u.id = p.user_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL '6 month'
  AND NOT u.admin
  AND NOT u.employees
  AND u.active
GROUP BY user_id, u.views
HAVING count(p.id) > 10
ORDER BY sum(p.score) / count(p) DESC
LIMIT 20

users 表包含 primary_group_id(整数类型),如果“员工”被设置为这些用户的主组,您可以在查询中使用该字段。否则,我认为您需要与 groups 表进行单独的关联。(注意——我一时想不起表结构的具体细节,但在编辑数据探索器查询时,右侧的搜索功能对此非常有用!)

若要获取排除某个组成员的用户列表,您可以尝试以下方法。这将排除“employees”组的成员。您应该可以重新编写查询以使用此方法。

WITH group_users AS (
SELECT user_id
FROM group_users gu
JOIN groups g
ON g.id = gu.group_id
WHERE g.name = 'employees'
)

SELECT
u.id AS user_id
FROM users u
WHERE u.id NOT IN (SELECT * FROM group_users)
ORDER BY user_id