一道SQL题引起的思考(where中的值集合)



今天复习了数据库中的简单SQL语句,聚合函数分组,在“求每个系中年龄最大的学生的信息”,开始想的是子查询,先查出每个系中的最大年龄,再将年龄作为条件查询,开始的思路大体上是没问题的,但存在一个失误,例如中文的最大年龄为22,英文系的最大年龄为23但英文系中存在22岁的学生,这样就会造成查询了英文系两名学生的成绩,原因是条件中用的in定义集合,他只会去匹配年龄而不管他是那个系的,解决这个问题,首先得想办法让系别与年龄对应起来,例如“中文系是22岁”,因此在where处应该是(系别,年龄)=(select 系别,min(出生日期)  from 表 group by 系别),这样就将系别与年龄联系起来了。

做完这个题自己也在反思,为什么自己会局限在单一的条件值上,也想不出方法来改变这些固定思维,实在是令自己很恼火,多希望有大神来指导指导我这个小菜鸟啊!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值