gpt4 book ai didi

MYSQL 计算值在 2 个不同列中的次数

转载 作者:行者123 更新时间:2023-11-29 06:28:32 24 4
gpt4 key购买 nike

我有一个包含调用详细记录的数据库。我想运行一个查询,该查询将按电话号码返回调用总数。数据库中的每一行代表一个电话。调用可以是由 callingPartyNumber 列表示的号码发出的调用,也可以是由 finalCalledPartyNumber 列表示的号码发出的调用。

例如,假设电话号码 5555551212 调用了 3 个电话并接听了 2 个电话。查询结果应返回电话号码和总通话次数(5555551212, 5)

我根据我在 stackoverflow 上发现的其他问题尝试了一些不同的查询,包括:

    SELECT callingPartyNumber, COUNT(*) as count FROM CDR 
GROUP BY finalCalledPartyNumber HAVING COUNT(*) > 1

    SELECT id, callingPartyNumber, finalCalledPartyNumber, count(*) AS count
FROM CDR
GROUP BY callingPartyNumber, finalCalledPartyNumber

但是我没有得到预期的结果。有人对实现此目标的最佳方法有任何建议吗?

提前致谢。

最佳答案

您可以为每种类型的调用执行两个查询的UNION,然后按电话号码GROUP BY临时结果:

SELECT All_Numbers.number, SUM(count) AS total_count
FROM (
SELECT callingPartyNumber AS number, COUNT(*) AS count
FROM CDR
GROUP BY callingPartyNumber
UNION
SELECT finalCalledPartyNumber AS number, COUNT(*) AS count
FROM CDR
GROUP BY finalCalledPartyNumber
) AS All_Numbers
GROUP BY All_Numbers.number

这假设没有数字可以调用自己,这将导致我在上面给出的解决方案中重复计算。

关于MYSQL 计算值在 2 个不同列中的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29350972/

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