sql - 什么是 SQL 程序员的好 'FizzBuzz' 问题?

标签 sql database

我们正在招聘一名 SQL 程序员,需要一个类似于 FizzBuzz question 的筛选问题。但对于 SQL。

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

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

最佳答案

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

Given the tables:

Customers: CustomerID, CustomerName

Orders: OrderID, CustomerID, ProductName, UnitPrice, Quantity

Calculate the total value of orders for each customer showing CustomerName and TotalPrice.

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

我喜欢这个问题的原因是它有助于跟进类似

的问题

How would you find all customers that ordered more than $1000 total? How would you normalize these tables? How would you optimize the queries?

关于sql - 什么是 SQL 程序员的好 'FizzBuzz' 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1783815/

相关文章:

mysql - 选择回答了所有问题的用户

database - 将DateTime对象上传到NoSQL数据库时出错

sql - 如何在 Amazon Redshift 中组合行

python - PostgreSQL 使用单个脚本 (psycopg2) 分两个阶段导入 CSV 文件

mysql - 如何设计一个用户 "likes"另一个?

mysql - MySQL模糊搜索的Big-O

database - 如何将oracle rds数据库迁移到rds中的mariadb

sql - SQL Server中的串联问题

sql - 如何根据字段获取行相对于总行数的排名?

mysql - SQL 仅选择列上具有最大值的行