gpt4 book ai didi

sql - 元组关系演算中的聚合函数

转载 作者:太空狗 更新时间:2023-10-30 01:54:59 25 4
gpt4 key购买 nike

如何将 COUNTGROUP BY 或您在 SQL 中找到的任何其他聚合函数转换为 TRC,我在互联网上找不到任何方法。

所以我有一个表User

    +----+----------+--+
| | User | |
+----+----------+--+
| pk | email | |
| | password | |
| | ... | |
+----+----------+--+

还有一张表友谊

+----+-------------+--+
| | FriendShip | |
+----+-------------+--+
| pk | user1_email | |
| pk | user2_email | |
| | date | |
| | accepted | |
+----+-------------+--+

以及 SQL 中的以下查询:

SELECT * 
FROM user u
LEFT OUTER JOIN friendship f ON (f.user1_email = u.email
OR f.user2_email = u.email)
GROUP BY u.email
HAVING COUNT(u.email) < 3

我想将此查询转换为元组关系演算,JOINSELECT 非常简单,但对于 GROUP BYCOUNT 我不知道。

谢谢,

最佳答案

正如 Lennart 所说,无法表达这些功能,所以我决定用另一种方式转换计数。

首先让我们断言以下谓词:

Friends Predicate

然后我们可以说有 2 个或更少的 friend ,有 0 个 friend ,1 个或 2 个 friend 。有 1 个 friend 就像说存在一个 friend (friend1),因为 Friends(me, friend1) 是真的。

要有 2 个 friend ,您必须有 1 个 friend 和另一个不同的 friend 。最后,你不能再有 friend 了。

所有这些都可以这样表达:

Querry

关于sql - 元组关系演算中的聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23710179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com