mysql - 如何解决这两个查询?

标签 mysql sql sql-server sqlite tsql

我是 SQL 新手,并且有一项家庭作业。我做对了所有问题,但仍然无法弄清楚这两个问题,所以如果可以的话请帮忙。我预先感谢您。

我有四张 table :

EMPLOYEE which conatin the attributes (Fname, Minit, Lname, Ssn, Bdate, Address, Sex, Salary, Super_ssn, Dno)

Table DEPARTMENT have the columns ( Dname, Dnumber, Mgr_ssn, Mgr_start_date)

Table PROJECT have the columns ( Pname, Pnumber, Plocation, Dnum)

Table DEPENDENT (Essn, Dependent_name, Sex, Bdate, Relationship)

Q1。对于控制项目数量最多的部门,请列出其名称? 我提出了这个查询,但它仍然只给我每个部门控制了多少个项目,但无法让它工作,因为只给了我最多的一个:(

SELECT Dname, COUNT(distinct Pnumber) as NumberOfProjects
FROM Department, Project
WHERE Dnum = Dnumber
GROUP BY Dname;

第二季度。检索比任何其他员工拥有更多家属的员工的姓名和 Ssn?

我想出了这个,但不知道为什么它不起作用。我不断收到错误

SELECT Fname, Lname, Ssn
FROM Employee
WHERE max((SELECT COUNT(*)
        FROM Dependent
        WHERE Ssn = Essn));

顺便说一句,我正在使用 MySql WorkBench 5.2,并且该语言仅允许使用 SQL

最佳答案

对于您的第一个查询,如果您已经拥有所有部门的列表及其控制的项目数量,那么您已经完成了工作。在您的查询中添加一些额外的代码来完成这项工作。

如果您按项目数量降序排序,则正确的部门将位于列表中的第一个。如果您 LIMIT 1,您将只选择该部门。

<小时/> 您的第二个查询需要更多工作,它不能像第一个查询那样清晰地提供您正在查找的信息。同样的方法,先把信息按顺序取出来,然后再找最上面的。您的内部查询可能应如下所示:

(SELECT Essn, COUNT(Dependent_name) AS Dependents
 FROM Dependent
 GROUP BY Essn
 ORDER BY Dependents DESC);

关于mysql - 如何解决这两个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18544653/

相关文章:

mysql - 购物 list 项目数据类型

mysql - 如何在 SELECT QUERY 上插入条件语句或 IF ELSE FUNCTION

python - 表名 SQL 语法错误

c# - 如何使用单个文本框搜索多列)

php - json_encode 为以项目符号为字符的字段返回 null

php - 自动删除将标签与书签相关联的 MySQL 记录,并使用外键连接它们的中间表?

mysql - 在一对多的情况下选择行

php - 混合 2 个查询来显示独特的优惠券 PHP/MySql

sql - 优化更新查询

sql - 仅将 Sql Server 2008 数据库架构复制到同一台计算机上的另一个 Sql Server 2008 数据库