我有2个表,users
和games
。用户可以有很多游戏。我需要所有拥有users
的{{1}},以及他们的games
计数(games_hosted
,其中有games
至finished
列。
P.S。我需要将所有数据加载到管理表中。由于游戏太多。我决定对数据进行分页和限制。但是,甚至限制以下查询也需要花费相同的时间。如何更好地查询呢?
true
答案 0 :(得分:0)
您可以在下面尝试使用case when
表达式
select "uid", "username", count(case when state = 'finished' then id end) as games_hosted
from "users" inner join "games"
on "games"."user_uid" = "users"."uid"
where "games"."state" in ('published', 'finished') and "username" < 'HariShankar'
group by "uid", "username"
order by "username" desc
limit 10