如何写关系代数

Pra*_*iya 5 sql

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

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

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

Tim*_*sen 2

下面是一个适用于大多数 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
Run Code Online (Sandbox Code Playgroud)

如果您使用 MySQL、SQL Server 或任何具有关键字LIMIT(或类似关键字)的数据库,那么查询会变得更容易:

SELECT company_name, COUNT(*) AS empCount
FROM WORKS
GROUP BY company_name
ORDER BY empCount DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)