我目前正在研究一个SQLite查询,它必须向我回复所有能够完成游戏中每个角色的玩家。我目前有这个代码:
SELECT pr.name
FROM (SELECT DISTINCT p.name name, c.role role
FROM players p, playerchampions pc, champions c
WHERE (p.name = pc.playername) & (pc.championname = c.name)) pr
WHERE COUNT(pr.name) = COUNT(DISTINCT pr.role)
我的想法是,我只是检查玩家是否可以履行与游戏中不同角色相同数量的角色,但是我误用了聚合函数COUNT()错误。我该怎么处理?
答案 0 :(得分:0)
此查询可以这样写:
SELECT players.name
FROM players
JOIN playerchampions ON players.name = playerchampions.playername
GROUP BY players.name
HAVING COUNT(playerchampions.championname) = (SELECT COUNT(DISTINCT role)
FROM champions)