我的表格设置如下:
id - game_id - player_id - action - assist
如果动作显示所执行的动作类型(目标,助攻,任意结果),则助手将填充给予助手的球员的球员ID(如果有)。有些player_id在一场比赛中有不同的动作行。
每行都填充例如:
1 - 3 - 15 - goal - 5
我现在想创建一个概述,它总结每个player_id的所有动作,所以我的结果数组中每个player_id只有一行。我用以下查询做了这个,这对我来说很有用:
SELECT id, player_id, game_id, assist, action, COUNT(*) AS count FROM game_action WHERE game_id = 3 GROUP BY player_id
在某些行中,辅助列中存在一个值。我想找回那些球员'信息并将其列为一个单独的行,其中包含' assist'
的正确计数我该怎么做?或者更改我的表结构和保存记录的方式更明智?
答案 0 :(得分:0)
工会怎么样?例如:
SELECT id, player_id, game_id, assist, action, COUNT(*) AS count
FROM game_action
WHERE game_id = 3 GROUP BY player_id
union
SELECT id, player_id, game_id, assist, action,count(*)
from game_action
where player_id in (select assist from game_action where game_id = 3)
GROUP BY player_id