我有 2 个表,一个事件表和一个用户表。
events table:
id | event_type | user_id
--------------------------
1 | 'type 1' | 1
2 | 'type 1' | 1
3 | 'type 1' | 4
4 | 'type 1' | 4
5 | 'type 1' | 3
6 | 'type 2' | 1
7 | 'type 4' | 2
users table:
id | username
---------------
1 | user1
2 | user2
3 | user3
我试图AVERAGE
从除 1 个特定用户之外的所有用户那里获取所有事件类型。因此,查看我上面给出的示例表,如果type 1
在 3 个唯一用户之间显示 5x 但我想忽略user_id = 3
,那么它将在 2 个用户之间显示总共 4x,因此平均值为type 1
2。我需要每个类型。
这是我到目前为止的 SQL 查询:
SELECT *
FROM events
LEFT JOIN users
ON users.id = events.user_id
WHERE users.username != 'a username'
这只会抓取除给定用户名之外的所有事件。但现在我需要找到所有事件类型的平均值。
我感谢您的帮助!
您只需要它的events
表和event_type
列即可获得所需的集合:
select event_type, (count(*)::float/(select count(*) from events)) as average_nr_of_types
from events
group by event_type
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句