首页 > 解决方案 > 迭代计数

问题描述

我有一个人表,其中包含每个人的唯一 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

此示例当前命令仅计算总购买次数。我如何计算每人?

标签: mysqlsqljoingroup-by

解决方案


您可以只使用聚合:

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_table每一行的记录数person_table。那里可以处理根本没有购买的left join人,在这种情况下count(pu.person_id)会屈服0


推荐阅读