Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Masalah dengan kueri MySQL menggunakan AVG()

Jika ini benar-benar diperbarui setiap hari, gunakan aritmatika tanggal:

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

Jika tidak, Anda harus memasukkan penghitung, yang dapat Anda lakukan dengan subquery yang berkorelasi:

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. MySQL GROUP OLEH dan COUNT

  2. Dapatkan jumlah kolom dan gunakan untuk menghitung persen dari total (mySQL)

  3. PILIH SQL_CALC_FOUND_ROWS Permintaan sangat lambat lebih dari 250000 catatan

  4. PDO::__construct():Server mengirim charset (255) yang tidak diketahui klien. Tolong, laporkan ke pengembang

  5. Bagaimana mengelola database MySQL, pengguna, dan tabel dari baris perintah