Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL как да получите средните стойности в определен диапазон

Можете да създадете списък с диапазони, като използвате UNION ALL и LEFT JOIN с него:

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

Имайте предвид, че горната заявка ще постави 20.9999 вътре [0-21) и 21.0000 вътре [21-34) диапазон.



  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

  2. Връщане на всички редове с определени условия

  3. Получавайте публикации от всички категории с изключение на една категория

  4. Как да коригирате com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Не са разрешени операции след затваряне на връзката. изключение?

  5. SQL низ за поръчка като число