sql >> Databasteknik >  >> RDS >> Mysql

Problem med MySQL-fråga med AVG()

Om dessa verkligen uppdateras varje dag, använd då aritmetik för datum:

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

Annars måste du lägga in en räknare, vilket du kan göra med en korrelerad underfråga:

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. java.sql.SQLException:Ingen lämplig drivrutin hittades för localhost-testet

  2. Vagrant port forwarding för Mysql

  3. MySql summaelement i en kolumn

  4. Delphi XE5 FireDAC-fel:Kan inte ladda leverantörsbiblioteket [libmysql.dll eller libmysqld.dll]