Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Problem z zapytaniem MySQL przy użyciu AVG()

Jeśli są one naprawdę aktualizowane codziennie, użyj arytmetyki dat:

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

W przeciwnym razie musisz wstawić licznik, co możesz zrobić za pomocą skorelowanego podzapytania:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie VB.NET MySQL

  2. jak usunąć każdy rekord z wyjątkiem jednego na godzinę

  3. Jak sprawić, by aplikacja na Androida komunikowała się z zewnętrzną bazą danych MySQL?

  4. Dlaczego EF generuje podzapytanie dla prostego zapytania?

  5. Jak haszować hasła w MySQL?