Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PostgreSQL中使用Group By for Range?_Sql_Postgresql - Fatal编程技术网

如何在PostgreSQL中使用Group By for Range?

如何在PostgreSQL中使用Group By for Range?,sql,postgresql,Sql,Postgresql,我在AWS Timeseries上有一张如下表: 跟踪标识 度量值::varchar 度量值::bigint 度量单位名称 269 - 48 年龄 269 男性 - 性别 这应该做到: 如果您不想使用FILTER子句,当然可以使用SUM(如果性别为'Male',则1 ELSE 0 END)结构。!非常感谢你! SELECT CASE WHEN age BETWEEN 0 and 12 THEN '0 - 12' WHEN age BETWEEN 13

我在AWS Timeseries上有一张如下表:

跟踪标识 度量值::varchar 度量值::bigint 度量单位名称 269 - 48 年龄 269 男性 - 性别 这应该做到:


如果您不想使用
FILTER
子句,当然可以使用
SUM(如果性别为'Male',则1 ELSE 0 END)
结构。

!非常感谢你!
SELECT
    CASE 
        WHEN age BETWEEN 0 and 12 THEN '0 - 12'
        WHEN age BETWEEN 13 and 17 THEN '13 - 17'
        ...
    END as age_range,
    COUNT(*) FILTER (WHERE gender = 'Male') as male_count,
    COUNT(*) FILTER (WHERE gender = 'Female') as female_count
FROM (
    SELECT
        tracking_id,
        MAX(measure_value_gender) as gender,
        MAX(measure_value_age) as age
    FROM mytable
    GROUP BY tracking_id
) s
GROUP BY age_range