美文网首页
一道sql题及面试表现总结

一道sql题及面试表现总结

作者: 若素Smile | 来源:发表于2021-08-15 16:38 被阅读0次

    sql题目说明

    写一条sql,查找出误删的数据:
    货币汇率表,原本6条数据,误删了三条,需要根据剩下的三条数据,查出被误删的货币列表,汇率不需要展示和计算;
    初始数据如下,为了方便我将表名取为test


    图片.png

    被误删的数据的货币即我们sql的结果应该为:

    EUR     CAN
    $       CAN
    $       EUR
    

    总结自己表现不佳的几点:

    ①重点思考就错了,认为需要一条sql查出来,就理解为需要比较简单高效的方法实现,没有想出来;潜意思认为作为题目考虑效率问题,应该不需要太多子查询,所以我没有做出来,也许会有什么高级语法。
    ②第一步的from_currency和to_currency进行union这种同表不同字段合并的方法没有想到,原因一是这种方式很少用到,而且会导致比较深的子查询,涉及①里面的思考;原因二担心如果时间花得长了,结果没能实现功能会比较影响面试官印象;
    ③跟着面试官及自己的思路写出了第一步union的sql了,后面的sql应该非常容易实现了,但是当时不知为何表现确实不好,就是没能写出来,而且后面问答感觉也不太好(前面第一步的合并可能是确实一下子没想到,但是后面组合都是比较简单的sql,没表现好蛮遗憾的)
    ④总结:最后三轮面试还没结束就想出下面的sql了,所以面试中sql题一般是不需要考虑性能的,主要就是为了考察思路和简单sql的叠加组合使用(最终实现发现其实也不复杂)
    ps:放在两三年前我觉我十分钟能写出来,当然这次面试官如果没有在对面等着,我应该也能实现
    最终我吃饭时候想出的实现方案及结果集如下:

    select a.from_currency, b.from_currency
    from
      (select from_currency from test 
        union 
      select to_currency from test) a 
    join 
      (select from_currency from test 
        union 
       select to_currency from test) b 
    on a.from_currency != b.from_currency
    where 
      concat(a.from_currency, b.from_currency) NOT IN 
        (select concat(test.from_currency, test.to_currency) from test);
    

    结果集如下:


    图片.png

    面试中其他需要改进点总结:

    .有些问题明明是会的结果没有说出来,主要因为刚开始面试,有些问题没理解到面试官的意图
    .关于java中计算相关的知识点没有及时去系统规范的总结,不利于面试,也不利于PAT的考试,这一小的知识点其实收货巨大的
    .应该更活跃一点更自信一点,主管和人事三面的时候,想听一下之前的电话面试时简单的英文自我介绍,应该直接重新说一下,没必要婉拒,表现有点内向

    相关文章

      网友评论

          本文标题:一道sql题及面试表现总结

          本文链接:https://www.haomeiwen.com/subject/egyubltx.html