如何计算客户推荐的数量?

zphenhs4  于 2021-06-25  发布在  Mysql
关注(0)|答案(4)|浏览(316)

我有一张如下所示的table:

Cust_ID . Cust_name . Cust_referred_by
1          Allan           2
2          Blake           3
3          Jen             2
4          Zeke            1

在这种情况下,艾伦是由布莱克介绍的。我如何计算每个客户有多少转介?到目前为止,我有以下代码:

select cust_name, count(cust_referred_by)
from Customer

我相信我必须使用自联接表,但不知道如何实现

j2qf4p5b

j2qf4p5b1#

You can use this query to get sum of one column values:

$result=mysql_query("SELECT SUM(Cust_referred_by) AS total FROM Customer");
$row = mysql_fetch_array($result);
$sum = $row['total'];
echo $sum;
flmtquvp

flmtquvp2#

你可以用 group by 以及 join 去做吧

select a.cust_name, count(b.Cust_ID)
  from Customer a
  join Customer b on a.Cust_ID=b.Cust_referred_by
group by a.cust_name
2ledvvac

2ledvvac3#

select
    t.Cust_ID,
    t.Cust_name,
    (select count(s.Cust_ID) from Customer as s where s.Cust_referred_by = t.Cust_ID) as Referred
from Customer as t

您应该使用子查询以获得更好的通用性。使用groupby是一个非常糟糕的设计,因为不能同时按两列进行分组。

vktxenjb

vktxenjb4#

假设您要为每个客户计算引用的客户数,则可以使用以下查询:

select cust_name, count(cust_reffered_by)
from Customer
group by cust_name

我想你要做的,是计算客户被推荐的次数。您可以通过以下查询实现这一点:

select cust_name, count(cust_id)
from Customer
group by cust_name

如果没有关于表的语义的更多信息,就很难确定要查找什么。

相关问题