这里的关系:WORKS(emp_name,company_name,salary)

问:编写表达式“关系代数”以找到员 worker 数最多的公司名称。

我试图以多种方式解决它,但没有找到正确的方法。

最佳答案

这是一个适用于大多数RDBMS的查询:

SELECT company_name
FROM WORKS
GROUP BY company_name
HAVING COUNT(*) = SELECT MAX(empCount) FROM
(
    SELECT COUNT(*) AS empCount
    FROM WORKS
    GROUP BY company_name
) t

如果您使用的是MySQL,SQL Server或具有LIMIT关键字(或类似关键字)的任何数据库,则查询会变得更加容易:
SELECT company_name, COUNT(*) AS empCount
FROM WORKS
GROUP BY company_name
ORDER BY empCount DESC
LIMIT 1

关于sql - 如何写关系代数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38887574/

10-10 08:11