您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

总关系代数(最大值)

总关系代数(最大值)

仅使用基本运算符就可以很好地表达聚合函数。这是一件很整洁的事情。@H_403_1@

假设我们有一个表T,我们想找到其“值”字段的最大值。首先,我们应该将T的笛卡尔积与自身- 或更确切地说,将其与副本T2进行比较。然后,我们选择T.value小于T2.value的行:这将为我们排除所有 不需要的 行,这些行的值小于某些其他行的值。为了获得最大值,我们应该从所有行集中减去这些不需要的行。就是这样。至少这是基本思想,我们还需要使用投影来正确确定尺寸。@H_403_1@

不幸的是,我不知道如何在此处插入Latex,但是使用关系代数表示法,可能是这样的:@H_403_1@

蟺(T.a1...Tan, T.value)(T)
    -
蟺(T.a1...Tan, T.value)(
    蟽(T.value<T2.value)( 蟻(T, T2) x T )
)

其中蟺是投影算子,-是集合差,蟽是选择算子,而ant是重命名算子。@H_403_1@

sqlishly:@H_403_1@

SELECT T.* FROM T
    MINUS
SELECT T.* FROM T, T as T2 WHERE T.value<T2.value

更实际的是:@H_403_1@

SELECT T.* FROM T LEFT JOIN T as T2 ON T.value<T2.value WHERE T2.value IS NULL

当然,所有这些主要只是学术上的兴趣,即表明关系代数是 有效的 。@H_403_1@

其他 2022/1/1 18:35:53 有332人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶