3

走れる

SELECT killedby, COUNT(killedby) killcount FROM games_playerinfo WHERE killedby != '' GROUP BY killedby

取得します

killedby    killcount
Player1         1
Player2         1

そして私は走ることができます

SELECT ign, COUNT(ign) numberofgames FROM games_playerinfo GROUP by ign

そして得る

ign numberofgames
player1 7
player2 3
player3 3
player4 3

最初のクエリの各結果を、最初のクエリの各ユーザーの 2 番目のクエリの結果で割りたいと思います。

したがって、結果は

ign      avgkillcount
player1  0.1429
player2  0.333333

結果を制限できるように、これを 1 つのクエリで実行したいと考えています。私は INNER JOINS を使ってみましたが、私がやろうとしていることを達成できるかどうかを知るのに十分なほど結合を理解していないと思います.

4

2 に答える 2

1

これを試して:

SELECT
  t1.ign,
  (t1.numberofgames / t2.killcount) AS avgkillcount
FROM
(
    SELECT 
      ign, 
      COUNT(ign) numberofgames 
    FROM games_playerinfo 
    GROUP by ign
) t1
INNER JOIN
(
    SELECT 
      killedby, 
      COUNT(killedby) killcount
    FROM games_playerinfo 
    WHERE killedby != ''
    GROUP BY killedby
) t2 ON t1.ign = t2.killedby;

SQLフィドルデモ

于 2012-11-29T08:33:28.460 に答える
1

クエリ:

SELECT g1.killedby ign,
       COUNT(g1.killedby)/(SELECT COUNT(ign) numberofgames 
                                  FROM games_playerinfo 
                                  WHERE ign = g1.killedby
                                  GROUP by ign) avgkillcount
FROM games_playerinfo g1
WHERE g1.killedby != '' 
GROUP BY g1.killedby
于 2012-11-29T08:34:14.087 に答える