我有一個SQL表叫main_table
:COUNT DISTINCT重複內的組在MySQL
id | product_id | purchase_id | purchaser_id ---+------------+-------------+------------- 1 | 1 | 1 | 1 2 | 1 | 2 | 1 3 | 1 | 3 | 1 4 | 1 | 4 | 2 5 | 1 | 5 | 2 6 | 1 | 6 | 3 7 | 2 | 1 | 1 8 | 2 | 4 | 2 9 | 2 | 5 | 2 10 | 2 | 7 | 2 11 | 2 | 8 | 2 12 | 2 | 6 | 3 13 | 2 | 9 | 3 14 | 2 | 10 | 3 15 | 2 | 11 | 3 16 | 2 | 12 | 4 17 | 2 | 13 | 4
我需要組由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?邏輯? – hims056 2013-05-02 05:52:39
邏輯是在這個問題的定義:(如果我有邏輯我不會問這個問題... – shadowice222 2013-05-02 06:06:31
@ shadowice222-通過邏輯我的意思是你爲什麼寫2和3,而不是4和5? – hims056 2013-05-02 06:08:18