0

あなたはこれを助けるためにクリケットの知識を必要とするかもしれません。次の表が与えられた場合、このクエリはこの結果を生成しますか?

Table: batsmen
batsmanname | runsscored | howout
Colin       | 10         | bowled
Colin       | 20         | caught
Steve       | 10         | bowled
Steve       | 20         | not out

SELECT batsmanname, SUM(runsscored) / COUNT(howout) AS battingavg
FROM batsmen 
WHERE howout <> 'not out' 
GROUP BY batsmananme

Result:
batsmanname | battingavg
Colin       | 15
Steve       | 30
4

1 に答える 1

1

これにより、必要な結果が得られます。

SELECT b1.name, SUM(b1.runsscored) / b2.NumOut as bat_avg
FROM batsmen b1
INNER JOIN
(
  select name, COUNT(howout) as NumOut
  from batsmen
  WHERE howout <> 'not out' 
  GROUP BY name
) b2
  ON b1.name = b2.name
GROUP BY b1.name

デモ付きのSQLフィドルを参照してください

于 2012-07-20T15:13:57.247 に答える