mysql - 迭代计数
问题描述
我有一个人表,其中包含每个人的唯一 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
此示例当前命令仅计算总购买次数。我如何计算每人?
解决方案
您可以只使用聚合:
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
。
推荐阅读
- php - 简单的 html dom 解析器查找文本
- azure - Azure Dev-ops Pipeline - 有条件地执行任务
- python - 无法打印字符串匹配模式
- python - Python Turtle Graphics Tic - Tac - 脚趾游戏
- python - PyCon 2012 David Mertz 谈协程作为线程
- java - 长度可变的数组
- python - 反正有实时的DHT22数据吗?
- java - 如何从firebase中检索键和值并将它们存储在两个单独的变量中
- php - 有没有办法将数组元素添加到 SESSION 变量中?
- xamarin.forms - FreshPageModelResolver.ResolvePageModel() 在 UWP Release 中抛出异常