CREATE TABLE user_info ( id INT PRIMARY KEY, name VARCHAR(50), age INT, gender VARCHAR(10) ); INSERT INTO user_info (id, name, age, gender) VALUES (1, '张三', 18, '男'), (2, '李四', 20, '女'), (3, '王五', 22, '男'), (4, '赵六', 25, '女'), (5, '孙七', 30, '男'), (6, '周八', 35, '女'), (7, '吴九', 40, '男'), (8, '郑十', 45, '女');
上面的代码创建了一个名为 user_info 的表,包含 id、name、age 和 gender 四个字段。然后往表中插入了 8 条记录,模拟了不同年龄段的用户数据。
SELECT CASE WHEN age= 20 AND age= 30 AND age< 40 THEN '30-40' ELSE '40以上' END AS age_range, COUNT(*) AS count FROM user_info GROUP BY age_range;
上面的代码使用 CASE WHEN 语句将年龄分成不同的区间,并对每个区间内的记录进行了统计。最后使用 GROUP BY 按照年龄区间进行分组。
执行上面的代码,大家将得到如下结果:
+-----------+-------+ | age_range | count | +-----------+-------+ | 0-20 | 2 | | 20-30 | 2 | | 30-40 | 2 | | 40以上 | 2 | +-----------+-------+
这个结果给出了用户数据按照年龄区间进行分组后的统计结果。这个结果可以用来进一步分析,比如计算每个年龄段内指标的平均值或者总和。