如何在PostgreSQL中使用Group By for Range?
我在AWS Timeseries上有一张如下表: 跟踪标识 度量值::varchar 度量值::bigint 度量单位名称 269 - 48 年龄 269 男性 - 性别 这应该做到:如何在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
如果您不想使用
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