sql >> Databáze >  >> RDS >> Mysql

Problém s dotazem MySQL pomocí AVG()

Pokud jsou skutečně aktualizovány každý den, použijte aritmetiku data:

SELECT bline_id, AVG(flow) as flowavg
FROM blf
WHERE bline_id BETWEEN 1 AND 30 and
      date >= date_sub(now(), interval 10 day)
GROUP BY bline_id
ORDER BY bline_id ASC

V opačném případě musíte vložit čítač, což můžete provést pomocí korelovaného dílčího dotazu:

SELECT bline_id, AVG(flow) as flowavg
FROM (select blf.*,
             (select COUNT(*) from blf blf2 where blf2.bline_id = blf.bline_id and blf2.date >= blf.date
             ) seqnum
      from blf
     ) blf
WHERE bline_id BETWEEN 1 AND 30 and
      seqnum <= 10
GROUP BY bline_id
ORDER BY bline_id ASC


  1. Omezení portu MySQL 3306 na localhost pomocí IPTABLES

  2. porovnání data a času php

  3. Dávkový soubor pro mysqldump pro zálohování každé databáze do samostatného souboru

  4. Jak používat funkci IDENTITY() na serveru SQL Server