对于SQL程序员来说,什么是'FizzBu​​zz'的好问题?

g .*_*g . 19 sql database

我们正在寻找一名SQL程序员,并且需要一个类似于FizzBu​​zz问题的好的筛选问题,但是对于SQL.

虽然使用SQL编写FizzBu​​zz解决方案当然是可能的,但我认为这种努力是错误的.FizzBu​​zz问题评估编码基础,例如循环,条件,输出和基本数学.使用SQL,我认为与查询,连接,投影等相关的东西会更合适.但是,就像FizzBu​​zz一样,它应该很简单,"好"的SQL程序员可以在几分钟内在纸上编写解决方案.

对于SQL程序员来说,什么是'FizzBu​​zz'的好问题?

Sam*_*eff 11

我们通常使用这样的东西作为SQL的最低要求:

鉴于表格:

客户:CustomerID,客户名称

订单:OrderID,CustomerID,ProductName,UnitPrice,Quantity

计算显示CustomerName和TotalPrice的每个客户的订单总价值.

在我们看来,这是一个非常简单的问题,需要连接两个表,分组和聚合函数.我们很惊讶我们与之交谈的人有多少可能在他们的工作中编写数据库代码时无法记住连接语法(我们从不关心他们使用哪种语法,MSSQL风格或Oracle风格或其他东西).

我喜欢这个问题,它有助于跟进像这样的问题

您如何找到订购总额超过1000美元的所有客户?你会如何规范这些表?你会如何优化查询?

  • @yar,我同意**如何**比**语法**更重要,但是,开发人员应该能够记住他们使用的语言的基本语法。具体到OP的问题,他问了一个SQL问题,所以伪代码不适用,这是SQL。任何使用 SQL 的开发人员都应该能够记住简单的连接语法。 (2认同)
  • 如果您必须在广告数据库上查找连接语法,那么您就会失败! (2认同)

Tho*_*thy 8

一个"FizzBu​​zz"应该是如此简单,任何可以编程的人都应该能够解决它,一个优秀的程序员应该能够几乎不用思考就能解决它,对吧?

也许是这样的:

首先,取两个表,员工和部门,从一个外键的员工,显示哪个部门每个员工的工作.(典型的无聊示例,几乎从任何数据库教科书.)然后让他们编写一个涉及两个表的查询,例如"给我清理部门所有员工的姓名".

然后做同样的事情,但不是那些为部门工作的员工,而是那些被猫吃掉的老鼠,或其他不是数据库教科书中员工部门或学生课程示例的精确副本的东西.

如果他们能找到谁在清洁部工作,但不知道如何找到被猫汤姆吃掉的老鼠,不要雇用!