Mysql 迭代计数

Mysql 迭代计数,mysql,sql,join,group-by,Mysql,Sql,Join,Group By,我有一个人员表,其中包含每个人的唯一ID。另一个表还包含他们的唯一ID和他们在某个商店的购买数量。我如何计算他们购买的数量 SELECT PERSON.ID, PERSON.NAME, (SELECT COUNT(*) WHERE PERSON.ID = PURCHASE.PERSON_ID) AS 'Total Purchases' FROM PERSON_TABLE AS PERSON, PURCHASE_TABLE AS PURCHASE 这个示例curre

我有一个人员表,其中包含每个人的唯一ID。另一个表还包含他们的唯一ID和他们在某个商店的购买数量。我如何计算他们购买的数量

SELECT 
    PERSON.ID, 
    PERSON.NAME, 
    (SELECT COUNT(*) WHERE PERSON.ID = PURCHASE.PERSON_ID) AS 'Total Purchases'
FROM PERSON_TABLE AS PERSON, PURCHASE_TABLE AS PURCHASE

这个示例current命令只计算总的购买数量。如何计算每个人的人数?

您可以使用聚合:

select pe.id, pe.name, count(pu.person_id) total_purchases
from person_table pe
left join purchase_table pu on pu.person_id = p.id
group by pe.id, pe.name

这为您提供了
purchase_表
person_表
中每一行的记录计数;
left join
用于处理根本没有购买的人,在这种情况下
count(pu.person\u id)
将产生
0

学会使用正确的
join
。它已经存在超过25年了。@Eric你能解释一下如何在我的具体案例中使用它吗?我注意到一个“左连接”;您能解释一下这个命令是如何工作的吗?是否可以对该联接执行内部操作?假设我想找到总额超过20美元的所有采购(
PURCHASE\u TABLE.total
)我该怎么做?