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

MySQL cara mendapatkan nilai rata-rata ke dalam rentang tertentu

Anda dapat membuat daftar rentang menggunakan UNION ALL dan LEFT JOIN dengan itu:

SELECT CONCAT(IFNULL(ranges.min, '∞'), '-', IFNULL(ranges.max, '∞')) AS `range`, avg(value) AS avg
FROM (
    SELECT 0 AS min, 21 AS max UNION ALL
    SELECT 21, 34 UNION ALL
    SELECT 34, 64 UNION ALL
    SELECT 64, NULL
) AS ranges
LEFT JOIN t ON (ranges.min IS NULL OR value >= ranges.min) AND
               (ranges.max IS NULL OR value <  ranges.max)
GROUP BY ranges.min, ranges.max

Perhatikan bahwa kueri di atas akan menempatkan 20.9999 di dalam [0-21) dan 21.0000 di dalam [21-34) jangkauan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sakit kepala Mysql 5.6 di Mac OSX

  2. MySQL menghapus semua baris di mana id lebih besar dari angka yang diberikan

  3. Simpan datetime php di database mysql

  4. Mysql - Menjumlahkan jumlah beberapa tabel yang digabungkan

  5. MySQL - Haruskah saya menggunakan kunci utama multi-kolom di setiap tabel anak?