SQL練習問題 – 問22


SQLの練習問題です。

筆者の環境は以下となっていますが、別のデータベースやツールでもほとんど同じように動作すると思います。

  • MariaDB 5.5.48
  • MySQL Workbench 6.3

よくわからないという方は、XAMPをインストールすると簡単に筆者と同じ環境を構築できます。以下のサイトで紹介されています。
WINDOWS XAMPP にて LARAVEL をインストール (XAMPP V1.8.3インストール)

問題として使用するデータは以下からダウンロード可能です。phpMyAdminからデータベース(worldcup2014)を作成しインポートしておいてください。
worldcup2014.zip

※データの誤りがありましたので、既にインポートされた方も改めて再インポートをお願いします。※ 2016/07/15


問題:以下の条件でSQLを作成し、抽出された結果をもとにどのような傾向があるか考えてみてください。

・5歳単位、ポジションでグループ化
・選手数、平均身長、平均体重を表示
・順序は年齢、ポジション

WS000016

正解:

SELECT FLOOR(TIMESTAMPDIFF(YEAR, birth, '2014-06-13') / 5) * 5   AS age, position, COUNT(id) AS player_count, AVG(height), AVG(weight)
FROM players 
GROUP BY age, position
ORDER BY age, position

SQL自体はそれほど難しくないかと思います。
今回はその結果をもとに年齢とポジション、身体的な特徴を分析してみるという問題でした。
いろいろなことがわかりますが、例えば以下のようなものになると思います。

1. GKは他のポジションに比べて年齢的なハンデが低い(35歳代ではもっとも人数が多い)
2. GKは若年層が極端に少なく、天性の素質よりも経験値が大きく影響する可能性が高い
3. DFは年齢が上がるにつれ身長が低くなる(つまり身体的な優位性以外の経験などが重視される)が、35歳以上では身体的な優位性も必要となる
4. MF、FWは一部例外があるものの年齢が上がるにつれて身長が高くなるため、若年世代では特に身体的な優位性よりも天性の素質やスピード面での優位性などが重要視される可能性が高い
5. FWは20~34まで人数がそれほど大きく変わらない。これは様々なタイプの選手(若くて走れる選手、背が高く競り勝てる選手など)が求められる可能性が高い

← SQL練習問題 一覧まとめに戻る

  • このエントリーをはてなブックマークに追加

PAGE TOP