sql >> データベース >  >> RDS >> Mysql

平均時間へのMySQLクエリ

    各ゲームの平均セットアップ時間とプレイ時間を取得するためのクエリは次のとおりです。お役に立てば幸いです。

    SELECT
      gameName,
      AVG(UNIX_TIMESTAMP(startPlay) - UNIX_TIMESTAMP(beginSetup)) AS setupTime,
      AVG(UNIX_TIMESTAMP(gameEnd) - UNIX_TIMESTAMP(startPlay)) AS gameTime,
      AVG(UNIX_TIMESTAMP(gameEnd) - UNIX_TIMESTAMP(beginSetup)) AS totalTime,
    FROM `table`
    GROUP BY gameName
    ORDER BY totalTime DESC;
    

    次のような結果が得られるはずです:

    +----------+-----------+-----------+-----------+
    | gameName | setupTime | gameTime  | totalTime |
    +----------+-----------+-----------+-----------+
    | chess    | 1100.0000 | 1250.0000 | 2350.0000 |
    | checkers |  466.6667 |  100.5000 |  933.3333 |
    +----------+-----------+-----------+-----------+
    

    ランダムなデータを含む約8行のテスト行を挿入したので、数値が意味をなさないのですが、それが得られる結果です。

    これによりテーブル全体がスキャンされるため、このテーブルにあるレコードの数によっては時間がかかる場合があることに注意してください。かなりの量のゲームレコードがある場合は、間違いなくバックグラウンドで定期的に実行したいものです。



    1. データベースは更新とともに展開されます

    2. PostgreSQL、レシピで材料を計算するための複雑なクエリ

    3. SQL Serverにテーブルが存在するかどうかを確認する6つの方法(T-SQLの例)

    4. PHP / MySQLベースのスクリプトを使用してWebサイトからのIPブロックを禁止するにはどうすればよいですか?