gpt4 book ai didi

SQL 创建用于返回年龄带的存储过程

转载 作者:行者123 更新时间:2023-12-03 18:18:43 26 4
gpt4 key购买 nike

我有一个名为 Person 的表,其中包含一个名为 PersonAge 的字段。我需要按年龄段对年龄进行分组,即“12 岁及以下”、“13-17 岁”、“18-25 岁”、“25 岁及以上”,并使用存储过程返回此结果集。

理想情况下,我需要像这样返回 2 个字段,'Age Band','Total'

年龄段 总计
12 岁及 5 岁以下
13 - 17 8
18 - 25 7
25 岁及 10 岁以上

最佳答案

创建一个包含您的乐队的表格:

CREATE TABLE agebands
(
id INT NOT NULL PRIMARY KEY,
lower_bound INT NOT NULL,
upper_bound INT NOT NULL
)
CREATE INDEX IDX_agebands_bounds ON (lower_bound, upper_bound)

然后用您的数据填充它:
INSERT INTO agebands VALUES (1, 0, 12)
INSERT INTO agebands VALUES (2, 13, 17)
INSERT INTO agebands VALUES (3, 18, 24)
INSERT INTO agebands VALUES (4, 25, 199)

然后加入它:
SELECT
lower_bound, upper_bound,
COUNT(*) AS number_of_people
FROM
persons
INNER JOIN agebands
ON person_age BETWEEN lower_bound AND upper_bound
GROUP BY
lower_bound, upper_bound
ORDER BY
lower_bound

这允许灵活地调整频带。当然,这里使用 UNION 的另一个答案也可用,如果您可以/不会向数据库添加另一个表,则更合适。

关于SQL 创建用于返回年龄带的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com