作者 | Nathan R

译者 | 天道酬勤,责编 | Carol

封图 | CSDN下载自视觉中国

在本文中,作者将介绍来自3个在技术面试中的真实的SQL问题,这些问题都是在实际公司进行技术筛选时提出的。

最常见的读者问题:我应该如何准备SQL面试?

准备 SQL 面试时,我会认真地做尽可能多的事情,这样以来,写查询就变成了我的第二天性。我希望技术部分成为面试过程中比较容易的部分,这样我就可以集中精力与面试官进行交流,并将我的精力花在用白板书写我的方法和解决方案上。

根据我在技术面试中的经验,面试官测试的最大重点是理解代码的在做什么,如何考虑各种场景或边缘情况以及结果的含义。

与你在工作中编写的冗长而复杂的查询相比,SQL部分非常简单。要么为你提供1个或2个表,并要求你创建一个需要进行联接或自联接的SQL查询,要么为你提供了SQL代码,并要求对其进行调试。

只要你了解JOINS和COALESCE之类的高级功能,就不会有问题。使面试变得困难的是,如何将代码编写与运行代码后得到的结果联系起来。

以下是在技术面试中被问到的3个真实的SQL问题

1、假设给你一个表,其中包含用户的好友请求、接受和他们的日期。如何编写一个查询,以便随着时间的推移可以获得%的好友接受率?

这个查询很容易创建(提示:使用自连接),但是你还需要在如何编写查询的权衡上进行额外的测试。你如何处理几天后发生朋友的接受?你哪一天算验收日期?你是在好友发送请求之日算起,还是在接受请求之日算起?为什么?

这当中没有正确或错误的答案,但是你需要确定有两种不同的方式来编写查询,然后讨论这两种选择之间的取舍。

2、如果你做了一次AB实验,并且由于在试点地区推出了一项新功能,朋友的接受度增加了2倍,且p <0.05,那么你会将其部署到生产环境中并推广到所有用户吗?

大多数人会说是的,但是在面试中,最明显的答案可能不是正确的答案。在这种情况下,正确的选择是:这要看情况。然后,你应该谈谈其原因,以及你需要哪些额外信息来做决定。

这些都是你需要注意考虑的问题,要思考如何形成一个完整的答案。

3、你有一个主表,其中包含一个用户ID及其最近的登录日期,并且你还有第二张表,其中包含当天登录的所有用户(同一用户当天可能有多次登录)。编写一个查询,该查询将使用用户ID及其最新登录日期来更新主表。

很简单,但是你需要练习理解所有不同的场景。在这种情况下,你有一个当天刚注册新用户的情况,以及当天有同一位用户多次登录的情况。你如何处理这些情况?

更多建议

我相信你在阅读本文时认为这些问题很简单。但困难的是,你在面试过程中可能并没有预料到这些问题,并且当下情况会要求你在面试官面前快速地分析和解决。你被要求编写一些代码,然后考虑所有不同的情况以及结果的含义。这可能是一个压力很大的情况,大多数人会不知所措。

这就是为什么你的技术技能需要第二天性。你的SQL技能必须与中文写作技能一样好。

在准备SQL面试时,作者给你的主要建议是,了解为什么、如何编写代码来解决特定问题。准备好交流为什么要编写特定的代码行,为解决特定的极端情况和场景,你要添加什么逻辑以及输出什么样的结果。你的解释与代码本身同样重要,甚至更重要。

另外,在构建解决方案时,请一定要和与面试官交谈,并让他们尽可能多地了解你的思考过程。

SQL面试是为了测试你的技术技能。在你的面试中,你要把你的技能归为零,并确保尽可能多地做练习题。

原文链接:https://hackernoon.com/3-real-sql-questions-asked-during-technical-interviews-x22w3ysa

本文为 CSDN 翻译,转载请注明出处。

6月3日20:00,CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛携手全球顶级开源基金会主席、董事,聚焦中国开源现状,直面开发者在开源技术、商业上的难题,你绝不可错过的开源巅峰对谈!立即免费围观

推荐阅读

  • 因为一个跨域请求,我差点丢了饭碗

  • 没错,你离分布式搜索只差一个Elasticsearch入门!

  • Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划

  • 全球Python调查报告:Python 2正在消亡,PyCharm比VS Code更受欢迎

  • 无代码来了,还要程序员吗?

  • 再见,Eclipse | 原力计划

  • 区块链共识算法总结 | 原力计划

真香,朕在看了!

面试中遇到这 3 个SQL问题,最容易掉坑里!相关推荐

  1. Mysql高级调优篇——第五章:Sql调优在面试中深度剖析

    上节讲了Sql调优实战,本章聊聊面试中Sql调优深度的剖析场景! 在讲之前我们先做一些准备工作,建立一些需要用到的表: Mysql高级调优篇表补充--建表SQL_风清扬逍遥子的博客-CSDN博客⭐️t ...

  2. 090901 T 面试中遇到的一个Sql Question

    10k的面试中遇到的一个Sql Question,当时没有做完整,后来回到易车工作的时候又遇到这个问题,结果同事都没做出来. 问题: 表: Category: ID Name Items: ID Ca ...

  3. Mysql排序添加名词_记面试中问到的MySQL的SQL调优问题

    目录 1.场景还原 2.名词解释 3.实践情况 4.个人观点 5.引申问题 1.场景还原 面试官:小伙子,听说你会SQL调优,那我这里有一条SQL,你来帮我调优一下.SQL如下: SELECT * F ...

  4. 面试中的SQL分析二

    1,面试题范例一 1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 ...

  5. 面试中sql调优的几种方式_面试方式

    面试中sql调优的几种方式 The first question I ask someone in an interview for a cybersecurity position is, &quo ...

  6. 记面试中问到的MySQL的SQL调优问题

    目录 1.场景还原 2.名词解释 3.实践情况 4.个人观点 5.引申问题 1.场景还原 面试官:小伙子,听说你会SQL调优,那我这里有一条SQL,你来帮我调优一下.SQL如下: SELECT * F ...

  7. ***面试中所常见的SQL题***

    ***面试中所常见的SQL题*** 1.请用SQL查询出"张"姓学生中平均成绩大于75分的学生信息 2.请用一条SQL语句查询出这三条记录并按以下条件显示出来, 大于或等于80分表 ...

  8. 面试季:如何在面试中介绍自己的项目经验

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 来源:https://dwz.cn/2PrmlZCX 现在已经是7月份,一些互联网大厂已经开始 ...

  9. 如何在面试中介绍自己的项目经验,很重要!

    在面试时,经过寒暄后,一般面试官会让介绍项目经验 .常见的问法是,说下你最近的(或最拿得出手的)一个项目. 根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段 ...

最新文章

  1. python sys模块作用_浅谈Python中的模块
  2. pycharm 通过 SFTP 远程编辑项目的配置
  3. 《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——3.3 微信开发者中心...
  4. HDU2650(高斯整数环)
  5. Bootstrap-CSS:表格
  6. oracle 如何查看当前用户的表空间名称
  7. ignite通过注解配置查询
  8. A New Beginning
  9. String类型直接赋值与构造赋值
  10. Python 包管理工具poetry配置国内PyPI镜像源
  11. bootstrap pagewrapper_BootStrap table服务端分页
  12. 【Arduino】开发入门【八】舵机操作+源代码
  13. 推荐中文分词:腾讯文智
  14. Java线程之Callable和Future
  15. mt6573集成MCP nandflash的详细方法
  16. 解决0x00000FD:Stack overflow(参数:0x00000000,0x002F2000)栈溢出问题
  17. [转帖]Dockerfile设置默认时区
  18. Arduino - Debugging on the Arduino IDE 2.0
  19. Python OpenCV 正月十五轻松点,复习一下模板匹配吧
  20. 蛋白相互作用数据库,STRING使用指南

热门文章

  1. php静态数组变量初始化,为什么数组初始化时,赋值不能是常量?
  2. java 线程 交给spring_浅谈Java中spring 线程异步执行
  3. updatebyprimarykeyselective返回什么是成功_嫦娥五号发射升空成功!!!
  4. dingo php,dingo 配置
  5. transmac使用方法_Mac苹果电脑降级方法?
  6. ie8 html 编辑器 为word,ie8生成word
  7. java开源服务框架_Java框架服务
  8. linux的用户及权限管理,用户及权限管理
  9. python神经网络调节参数_神经网络进阶-用python实现一个完整的神经网络框架并在CIFAR10数据集上调参...
  10. 好文!研究生高效阅读的五大原则