【发布时间】:2013-12-08 23:35:45
【问题描述】:
我正在尝试根据条件 if player_id (Gary) 进行聚合 得分大于、等于或小于 player_id("other")
我的架构有
players(player_id, name)
matches(match_id, home_team(player_id), away_team(player_id) )
outcome(outcome_id, match_id, home_score:integer, away_score:integer
输出来自:
select m.match_id, p.name AS home_team, p1.name AS away_team, o.home_score, o.away_score
from players p
inner join matches m on (p.player_id = m.home_team)
inner join players p1 on (p1.player_id = m.away_team)
inner join outcomes o on (m.match_id = o.match_id);
match_id | player_id | player_id | home_score | away_score
----------+-----------+-----------+------------+------------
1 | 1 | 2 | 1 | 2
2 | 2 | 1 | 1 | 3
3 | 3 | 1 | 3 | 2
想要的输出:
player_id | Wins | Draws | Losses
-------------+------+-------+--------
1 | 1 | 0 | 2
2 ... | ... | .. | ...
我的架构可以更改。
编辑(sqlfiddle):http://www.sqlfiddle.com/#!2/7b6c8/1
【问题讨论】:
-
啊,很抱歉模棱两可,没关系!重点更多地放在每个玩家@Filipe Silva 的获胜次数和平局数上
-
您可以在原始表格示例数据中添加sqlfiddle 吗?
-
会的! @FilipeSilva
-
sqlfiddle.com/#!2/7b6c8/1@FilipeSilva
标签: sql postgresql database-schema