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. ネストされたテーブルのクエリ

    2. PHP PDOは、bindParamを使用して複数(10000以上)の同じ行を挿入します。いい練習?

    3. MySQLでUNIX_TIMESTAMPのデフォルトで列を作成することは可能ですか?

    4. Mysqlネストされた選択