代码之家  ›  专栏  ›  技术社区  ›  g .

对于SQL程序员来说,什么是一个好问题?

  •  19
  • g .  · 技术社区  · 15 年前

    我们正在寻找一个SQL程序员,需要一个很好的筛选问题类似于 FizzBuzz question 但是对于SQL。

    虽然使用SQL编写FizzBuzz解决方案当然是可能的,但我认为这一努力是错误的。FizzBuzz问题评估编码基础,如循环、条件、输出和基本数学。对于SQL,我认为与查询、连接、投影等相关的内容更合适。但是,就像FizzBuzz一样,它应该足够简单,“优秀”SQL程序员可以在几分钟内将解决方案写在纸上。

    对于SQL程序员来说,什么是一个好问题?

    5 回复  |  直到 13 年前
        1
  •  11
  •   Samuel Neff    15 年前

    我们通常使用以下内容作为SQL的最低要求:

    客户:CustomerID,CustomerName

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

    在我们看来,这是一个非常简单的问题,需要对两个表进行连接、分组和聚合函数。我们惊讶地发现,有多少在工作中编写数据库代码的人可能记不起连接语法(而且我们从不关心他们使用的是哪种语法,MSSQL风格还是Oracle风格或其他什么)。

    您如何找到订购总额超过1000美元的所有客户? 您将如何优化查询?

        2
  •  8
  •   Thomas Padron-McCarthy    15 年前

    “FizzBuzz”应该非常简单,任何一个会编程的人都应该能够解决它,而一个好的程序员应该能够几乎不用思考就解决它,对吗?

    所以可能是这样的:

    首先,拿两张桌子, 员工 部门 ,使用来自的外键 员工

    然后做完全相同的事情,但不是针对为部门工作的员工,而是针对被猫吃掉的老鼠,或者其他与数据库教科书中的员工部门或学生课程示例不完全相同的事情。

        3
  •  3
  •   HLGEM    15 年前

    我可能会做一些需要内部连接、左连接和带有and和OR条件的where子句的事情。还指定要返回的字段。您将查看他们是否从问题描述中认识到他们需要左连接,是否使用显式连接语法,是否使用()来明确and/or的含义。您还将查看他们是否使用select*,即使您指定了所需的字段。

        4
  •  0
  •   Tim Cooper    13 年前

    坚持使用fizzbuzz,只需将数字从100更改为10000000,并说明解决方案必须合理有效。

        5
  •  -1
  •   u07ch    15 年前

    SQL开发人员还是SQL DBA?对于开发者来说,关于游标的一些东西;语法是一个难题,一个好的语法可能会质疑您为什么需要使用它。对于dba,给他们一个游标并让他们修复;)