【发布时间】:2014-05-09 15:03:02
【问题描述】:
我在 Bsc 上遇到了一些 SQL 问题。 CS 复习试卷 - 我知道你们都不喜欢回答学术问题,但这是我最后的手段(也是周一考试的复习),我不知道该怎么做。
我有 2 张桌子:
Department (deptId: string, deptName: string, managerId: string)
Employee (empId: string, empName: string, jobName: string, salary: integer, deptId: string)
我需要运行 2 个查询:
1) 显示人数最多的部门的名称和id 员工
2) 显示员工平均工资不低于的部门名称 40000
我认为我需要在这里使用join 和having,但这些都是我无法完全理解的东西。
所以我的问题是,我将如何编写这些查询?我本身不需要答案,而是知道如何实现目标的解释性方法。同样,这不是学术工作,而是期末考试的修订。
【问题讨论】:
-
首先,您将如何找到每个部门的员工人数?
-
在您的问题中,“Department”和“Employee”是 tables ,而不是数据库。
-
他们确实是我的错 - 我整天都在盯着这些东西 :p 为了找到每个部门的员工数量,我会运行
select count(*) from employee group by deptid但这并没有让我知道deptname,当然——这是个问题。 -
@Timmy: 你能在那个查询的 SELECT 列表中返回 deptid 吗?如果您还为 COUNT(*) 分配了一个别名,您是否可以将该查询包装在括号中,然后对它运行一个 SELECT,就像它是一个表一样?
-
@Timmy 如果我们将此讨论转移到聊天中不是更好吗?
标签: sql postgresql