Postgres嵌套SQL查询到计数字段
我有几张桌子:Postgres嵌套SQL查询到计数字段,sql,postgresql,aggregate-functions,Sql,Postgresql,Aggregate Functions,我有几张桌子: users - id users_matches - user_id, match_id, team matches - id, winner 我想数一数一个用户有多少赢、输和平局team是一个整数,可以是1或2winner也是一个整数,但它可以是1(第1队获胜)、2(第2队获胜)或3(平局) 我不知道如何将分组的计数与Postgres中的嵌套查询混合使用。假设引用完整性和Postgres 9.4: SELECT *, total - wins - ties AS loss
users - id
users_matches - user_id, match_id, team
matches - id, winner
我想数一数一个用户有多少赢、输和平局team
是一个整数,可以是1或2winner
也是一个整数,但它可以是1(第1队获胜)、2(第2队获胜)或3(平局)
我不知道如何将分组的
计数与Postgres中的嵌套查询混合使用。假设引用完整性和Postgres 9.4:
SELECT *, total - wins - ties AS losses
FROM (
SELECT count(*) AS total
, count(*) FILTER (WHERE m.winner = um.team) AS wins
, count(*) FILTER (WHERE m.winner = 3) AS ties
FROM users_matches um
JOIN matches m ON m.id = um.match_id
WHERE um.user_id = 123; -- for one given user
) sub;
关于聚合过滤器
条款(在Postgres 9.4中介绍):
Postgres 9.4我想是吧?