【发布时间】:2014-05-26 01:12:26
【问题描述】:
我有以下员工架构:
员工(身份证、姓名、地址、年龄)
要找出最年长员工的姓名,我知道 SQL 如下所示:
select name from employee,
(select max(age) max_age from employee) e2
where age=max_age
但我不确定如何在关系代数中做到这一点。再一次,教科书没有提到如何做这些事情。
我可能的解决方案如下:
π姓名 (σage=max_age(员工× ρmax_age/age(ℱmax(age)(employee)) ))
【问题讨论】:
-
您的解决方案应该有效。通用方法与您所做的一样:将一个或多个聚合运算符应用于同一个表来交叉表。
-
请注意,如果您想在帖子中使用标准 RA 表示法,您可以使用“”和 HTML 字符实体(例如,输入“ρ”以获得 ρ、“× " 代表 ×,"⋈" 代表⋈)。
-
@outis:谢谢你的建议。如果我们使用 html 代码添加实际的符号看起来会更好。
标签: database relational-algebra