1

私は現在、ゲーム内のすべての役割を果たすことができるすべてのプレイヤーを再実行する必要がある 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() エラーの誤用が発生するということです。これをどのように処理すればよいですか?

4

1 に答える 1

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)
于 2013-04-11T12:43:51.987 に答える