选择USER_ID点数之和大于所有其他USER_ID点数之和的实体_ID。

最后发布: 2020-08-03


问题

一、下表

table edits
- user_id
- entity_id
- points: smallint

一个用户可以拥有多条记录,用于同一个 entity_id.

我想返回一个实体ID的列表,其中的 user: 1的积分大于其他用户对某一实体的积分之和。我猜测它是由一个叫做 group by [user_id, entity_id] 和a having sum(user_id: 1) >= sum(user_id) 但我的知识到此为止。

sql postgresql
回答

嗯......这是你想要的吗?这是你想要的吗?

select e.*
from edits e
where e.points < (select e2.points
                  from edits e2
                  where e2.entity_id = e.entity_id and e2.user_id = 1
                 ) and
      e.entity_id = ?;