记录一次2018年9.26的猎聘的java后端的笔试,一道简单的SQL题目,我没写出来

 

 

如上表。知道两个表求出每个地区的的年龄最大的,且如下表所示

 

但是笔试的时候,我没做出来。考场上我想用max()等聚合函数的,结果还是不对。后来我查了好久

select t.name,t.age,city.`name` from student t,city where not exists(select 1 from student where cityid=t.cityid and  Age> t.Age) and t.cityid=city.id;

以上就是完美的答案

 

【补充】

sql中select 1是什么意思

  1. 每个“1”代表有1行记录,同时选用数字1还因为它所占用的内存空间最小。

  2. 一个很不错的SQL语句写法,它通常用于子查询。

  3. 可以减少系统开销,提高运行效率。

  4. 因为这样子写的SQL语句,数据库引擎就不会去检索数据表里一条条具体的记录和每条记录里一个个具体的字段值并将它们放到内存里。

  5. 根据查询到有多少行存在就输出多少个“1”。

  6. 用数字0的效果也一样。

  7. 在不需要知道具体的记录值是什么的情况下这种写法无疑更加可取。

  8. 下面就是求“最某个字段下(cityid)的另外一个字段(age)的最大的数据”   的模板

  9. 感觉java后端的面试很有难度,自己准备的根本o((⊙﹏⊙))o.不够应付企业的各种笔试和面试,有点迷茫。难怪读计算机的出来转行率也比较高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值