如何合并行并计算其列值SQL

时间:2016-12-13 20:21:07

标签: sql postgresql

我有下表(table_x):

   GAME_ID   |   TEAM_ID   |   MATCH_GOALS   |   VICTORY
      1             1               1               1
      1             4               0               0
      2             6               4               1
      2             2               2               0
      3             1               3               1
      3             6               1               0
     ...           ...             ...

我一直在尝试创建一个SQL查询脚本,它从table_x中为我提供了一个新表(table_y),它合并了具有相同TEAM_ID和SUM的MATCH_GOALS以及它们的VICTORIES的行,如下所示:

   TEAM_ID   |   TOTAL_GOALS   |   VICTORIES
      1               4                2
      2               2                0
      4               0                0
      6               5                1
     ...             ...              ...

然而,我没有成功,任何帮助表示赞赏!

Ps:我正在使用PostgreSQL 9.5

编辑:这是我尝试过的

SELECT 
  team_id,
  COUNT(scoreboard.match_goals) AS total_goals
FROM(
  SELECT 
    team_game.game_id, 
    team_game.team_id,
    CASE
    WHEN team_id = house_team THEN house_goals
    ELSE visitor_goals
    END as match_goals
  FROM 
    public.team_game, 
    public.game
  WHERE 
    team_game.game_id = game.game_id
  ORDER BY
    game.game_id ASC) as scoreboard
GROUP BY
  team_id
ORDER BY
  team_id;

1 个答案:

答案 0 :(得分:0)

select a.*, b.victories 
from 
    (select team_id, sum(match_goals) as total_goals from table_x group by team_id) as a
join 
    (select team_id, sum(victory) as victories from table_x group by team_id) as b 
on a.team_id = b.team_id