【发布时间】:2013-04-26 05:16:51
【问题描述】:
我有一个名为 main_table 的 SQL 表:
我需要按product_id分组,找到四样东西:
- # 购买
- # 购买者
- # 重复购买
- #重复购买者
所以前3个比较简单……
SELECT FROM `main_table`
product_id,
COUNT(DISTINCT `purchase_id`) AS `purchases`,
COUNT(DISTINCT `purchaser_id`) AS `purchasers`,
(COUNT(DISTINCT `purchase_id`) - COUNT(DISTINCT `purchaser_id`)) AS `repeat_purchases`,
(??????) AS `repeat_purchasers`
GROUP BY product_id
ORDER BY product_id ASC
?????? 是什么才能得到下表:
product_id | purchases | purchasers | repeat_purchases | repeat_purchasers
-----------+-----------+------------+------------------+------------------
1 | 6 | 3 | 3 | 2
2 | 11 | 4 | 7 | 3
【问题讨论】:
-
repeat_purchasers中的 2 和 3 是如何设置的?逻辑? -
逻辑在问题的定义中:(如果我有逻辑,我就不会问这个问题......
-
@shadowice222- 按逻辑我的意思是你为什么写 2 & 3 而不是 4 和 5?
-
因为那是重复购买者的数量
-
好的。而且您需要查看Markdown help 来轻松格式化帖子,就像我在这里所做的那样:)
标签: mysql sql group-by distinct having