Ale*_*der 19 interview-question
给定一个表“员工”
employee_id | salary | department_id
-------------+--------+---------------
Run Code Online (Sandbox Code Playgroud)
仅使用 SQL 查找从一个部门到另一个部门的员工调动的所有变体,因此“出发”和“到达”部门的平均工资都增长了。
PS 我在面试中被问到这个问题,从来没有给出答案,谷歌也帮不上什么忙。
Mar*_*ith 22
因此,您正在寻找收入低于当前部门平均水平但高于未来新部门平均水平的员工。
获得满足此要求的所有员工调动的一种可能方法是
WITH departments
AS (SELECT AVG(salary) AS AvgSalary,
department_id
FROM employees
GROUP BY department_id)
SELECT e.employee_id,
dept_current.department_id AS current_department_id,
dept_new.department_id AS new_department_id
FROM employees e
JOIN departments dept_current
ON e.department_id = dept_current.department_id
AND dept_current.AvgSalary > e.salary
JOIN departments dept_new
ON dept_new.AvgSalary < e.salary
Run Code Online (Sandbox Code Playgroud)
Sol*_*zky 10
鉴于这是一个面试问题(而不是测试问题),根据上下文有几种可能性。
问题是不完整的陈述和 不能也许不应该以其当前的形式回答(请参阅下面的更新部分)。有什么不见了?嗯,例如:
如果这更像是一个 OLTP 表,那么应该在employee_id
字段上定义一个 PK/唯一索引/唯一约束。在这种情况下,每个条目只有一个条目employee_id
,因此无法确定转移(即没有“旧”department_id
记录)。
如果这更像是一个 OLAP 表,那么这可能是一个缓慢变化的维度,在这种情况下会有多个employee_id
记录。但是,还需要有ValidFrom
和ValidTo
DATE / DATETIME 字段,以便可以按正确的顺序确定出发和到达部门。如果没有这些领域没有办法确定哪个部门的出发和哪一个是到来。并且不知道这种区别将允许取回与请求相反的记录。
因此,如何解释这个问题的“上下文”就是为什么这个问题如此陈述的原因。
你忘记了采访和在这里询问之间的一些细节:
它发生了,但如果是这种情况,那么您要么需要更新问题以填写缺失的信息,要么仍然无法回答(至少在获得有意义的答案方面)。
问题已在此处准确转录,并且这些问题不为采访者所知或有意为之:
在这种情况下,如果您知道这些问题并且他们期待得到答案,那么您可以将其用作将他们淘汰为可能的雇主的一种方式 ;-)。
该问题已在此处准确转录,并且这些问题是面试官已知的或有意为之:
在这种情况下,他们可能将其用作通过查看不只是原始技术能力来淘汰人的一种手段。由于大多数最终用户和产品所有者等不会思考/谈论低级技术细节,并且经常会遗漏必要的部分,因此提出问题以非常清楚您正在从事的项目通常非常重要。重要的是不要假设,而是回到请求的来源以获得澄清,这样您就不会浪费时间在错误的方向上工作。
请记住,您不是在面试一个职位,只是在真空中回答技术问题。您正在面试一个项目工作职位,并且在要求一个人做的事情上总是存在歧义和/或误导性信息。一个好的面试官会试图了解你的技能水平,以及你是否真的会工作。我在面试人时问过这样的问题,以淘汰那些回答技术问题但需要太多手把手并最终拖慢团队速度的人。
更新:
只是为了澄清那些认为这是一个简单的查询技能问题的人的澄清,解释为@Martin 在他的回答中所做的解释:我们甚至不知道这是否是提交给 OP 的问题的确切措辞但是我们确实知道,在我们可以信任的情况下,这是在一次采访中给出的。和好面试官提出的问题不仅会引出候选人的技术技能,还会引出他们的非技术/“软”技能。很可能马丁在他的解释中是正确的,即问题是询问潜在的未来转移组合(即“有时雪茄只是雪茄”)。如果这是一个测试问题,那么如果他的回答不正确,我会感到惊讶。但是,这不是测试题。当然,这可能是一个面试问题,他不是想看看候选人是什么类型的人,以及他们在设计会议上的表现,在这种情况下,这种模棱两可的出现比大多数人都注意到的要多。但没有得到任何答复,把事情做好(在页面上搜索“你正在寻找的人”,但你真的应该阅读整件事)。所以,在两个各方面都平等的候选人之间,一个假设解释正确,另一个提出问题然后得到正确答案,我肯定会选择第一个提问的。
归档时间: |
|
查看次数: |
2073 次 |
最近记录: |