sql >> Database >  >> RDS >> Mysql

Mysql-query naar gemiddelde tijd

Hier is een vraag om de gemiddelde opstarttijd en speeltijd voor elk spel te krijgen, ik hoop dat het helpt:

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;

Zou resultaten moeten opleveren die vergelijkbaar zijn met:

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

Ik heb zojuist ongeveer 8 testrijen ingevoegd met wat willekeurige gegevens, dus mijn cijfers kloppen niet, maar dat is het resultaat dat je zou krijgen.

Houd er rekening mee dat hiermee uw hele tabel wordt gescand, dus het kan even duren, afhankelijk van het aantal records dat u in deze tabel heeft. Het is zeker iets dat je periodiek op de achtergrond wilt laten draaien als je een aanzienlijk aantal gamerecords hebt.



  1. Voorkom meerdere aanmeldingen van dezelfde gebruiker op een desktoptoepassing

  2. Laad een afbeelding naar C# en voeg deze vervolgens in de MySQL-tabel in

  3. SQL INSERT INTO… SELECT Voorbeelden

  4. Databaseontwerp / normalisatiestructuur moet EN's, OR's, optionele elementen en hun relaties bevatten