sql 实现一个学生表 字段为 name age sex 统计出 20 以下 20-40 40以上的 男女人数

SELECT 
    CASE
        WHEN age < 20 THEN '20以下'
        WHEN age >= 20 AND age <= 40 THEN '20-40'
        ELSE '40以上'
    END AS age_group,
    sex,
    COUNT(*) AS count
FROM 
    studet
GROUP BY 
    age_group, sex
ORDER BY 
    age_group, sex;

  • SELECT: 选择要返回的列或表达式。在这个查询中,我们选择了三个列:age_group(使用 CASE 表达式生成的年龄段)、sex 和 COUNT(*)(用于计算每个年龄段和性别的人数)。
  • CASE: 用于条件判断并返回不同的值。在这个查询中,我们使用 CASE 表达式将年龄划分为不同的年龄段。
  • WHEN: CASE 表达式中的关键字,用于指定条件。
  • THEN: CASE 表达式中的关键字,用于指定满足条件时返回的结果。
  • ELSE: CASE 表达式中的关键字,用于指定所有条件都不满足时返回的默认结果。
  • AS: 用于给查询结果中的列或表达式指定别名。在这个查询中,我们使用 AS 关键字给 CASE 表达式的结果起了一个别名,即 age_group。
  • FROM: 指定要查询的数据源,即表名。在这个查询中,我们从名为 students 的表中查询数据。
  • GROUP BY: 按照指定的列进行分组。在这个查询中,我们按照 age_group 和 sex 列进行分组。
  • ORDER BY: 按照指定的列对结果集进行排序。在这个查询中,我们按照 age_group 和 sex 列进行升序排序。在这个语法结构中,CASE 表达式首先会对 condition1 进行判断,如果满足则返回 result1;如果不满足,则继续判断 condition2,以此类推。如果所有条件都不满足,则返回 default_result(可选)。

除了上述简单形式外,CASE 表达式还可以嵌套使用,也可以作为查询结果的一部分,并且可以用于各种复杂的条件逻辑。

在你之前提供的例子中,我们使用了 CASE 表达式来根据学生的年龄划分为不同的年龄段,并为每个年龄段指定一个别名。具体来说,当年龄小于 20 岁时返回 '20以下',当年龄在 20 到 40 岁之间时返回 '20-40',否则返回 '40以上',并将结果赋予别名 age_group。

总的来说,CASE 表达式在 SQL 中扮演着非常重要的角色,能够实现灵活的条件判断和结果返回,为数据处理和分析提供了很大的便利。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值