我的表格如下所示:
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
我相信我必须使用自联接表但不确定如何实现
答案 0 :(得分:1)
您可以使用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
答案 1 :(得分:1)
假设您要计算每个客户的cust_reffered_by,那么您可以使用以下查询:
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
如果没有关于表格语义的更多信息,很难确定你在寻找什么。
答案 2 :(得分:1)
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;
答案 3 :(得分:0)
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
您应该使用子查询以获得更好的多功能性。 使用Group by是一个非常糟糕的设计,因为您不能同时按两列分组。