Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL cách nhận giá trị trung bình vào phạm vi cụ thể

Bạn có thể tạo danh sách các phạm vi bằng cách sử dụng UNION ALLLEFT JOIN với nó:

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

Lưu ý rằng truy vấn trên sẽ đặt 20.9999 bên trong [0-21)21.0000 bên trong [21-34) phạm vi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhanh chóng xây dựng giao diện CRUD PHP với Công cụ tạo CRUD nâng cao PDO

  2. java.sql.SQLException:Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' (sử dụng mật khẩu:CÓ)

  3. truy vấn mysql để tìm tất cả các kết hợp có thể có như bắt đầu bằng và kết thúc bằng (trùng lặp đơn giản hóa)

  4. mysql ném cột không xác định 'mac' trong 'danh sách trường'

  5. ASP MVC MsSql di chuyển sang MySQL