在 PostgreSQL 中,可以使用以下 SQL 语句通过身份证号码进行年龄段的统计:
SELECT
CASE
WHEN substr(id_card, 7, 4)::integer >= (current_date - interval '18 years')::date AND substr(id_card, 7, 4)::integer <= current_date THEN '18-30'
WHEN substr(id_card, 7, 4)::integer >= (current_date - interval '30 years') AND substr(id_card, 7, 4)::integer < (current_date - interval '18 years') THEN '30-40'
-- 添加更多的年龄段条件
ELSE '其他'
END AS age_group,
COUNT(*) AS count
FROM your_table
GROUP BY age_group;
请将 your_table
替换为你的表名,并确保表中有一个名为 id_card
的字段,该字段包含身份证号码。这个查询将根据身份证号码中的出生年份计算年龄,并根据年龄段进行分组统计。你可以根据需要添加更多的年龄段条件。