gpt4 book ai didi

MySQL:两个 COUNT 的总和(按不同值)

转载 作者:行者123 更新时间:2023-11-29 09:55:10 25 4
gpt4 key购买 nike

我的 MySQL 表保存引文。每一行都是一个引用,如下所示:

A = citer,B = 被引用(即 A 引用了 B)。

我知道如何获取 (1) 谁最常引用 A 以及 (2) 谁最常引用 A 的数字:

/* (1) who cited A most often? */
SELECT citer,COUNT(citer) AS citations1 FROM `table` WHERE cited='A' GROUP BY citer ORDER BY citations1 DESC

/* (2) whom did A cite most often? */
SELECT cited,COUNT(cited) AS citations2 FROM `table` WHERE citer='A' GROUP BY cited ORDER BY citations2 DESC

现在我想要的是获得这两个统计数据的总和(引用1 + 引用2),以便我知道谁与 A 的总引用链接最多。

示例:如果 B 引用 A 五 (5) 次,A 引用 B 三 (3) 次,则 A-B 链接的总和为八 (8)。

这可以通过 MySQL 公式实现吗?感谢您的帮助!

最佳答案

您可以将其写为:

select person, (sum(citers) + sum(citeds)) as total
from ((select citer as person, count(*) as citers, 0 as citeds
from citations
where cited = 'A'
group by citer
) union all
(select cited, 0, count(*) as citeds
from citations
where citer = 'A'
group by cited
)
) c
group by person
order by total desc;

这个问题有点棘手。如果您尝试使用加入,您将排除具有最多引用链接的人只是“引用者”或只是“被引用者”的可能性。

关于MySQL:两个 COUNT 的总和(按不同值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53978017/

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