更新时间:2023-11-26 18:47:04
假定参照完整性和Postgres 9.4:
Assuming referential integrity and 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;
关于总计 FILTER
子句(引入Postgres 9.4):
About the aggregate FILTER
clause (introduced with Postgres 9.4):