[英]MySQL I want to select all the multiple ordered customers' order history
我想 select 所有多個訂購客戶的訂單歷史記錄。
order_details 表是這樣的
+-------------+--------------------------------------+
| customer_id | store_id |
+-------------+--------------------------------------+
| 1 | 3g07gd22-7eba-gae9-8aeb-aae3bae6wga0 |
| 1 | 3g07gd22-7eba-gae9-8aeb-aae3bae6wga0 |
| 1 | aq8riuqj-vaef-fae2-aher-28acjxreqjxw |
| 2 | 239jfa2r-a3ga-afoi-saf3-ap093fj40qwf |
| 3 | a1lkjerq-fape-bile-aof-asfdajvaa2938 |
| 3 | 239842as-2cr3-p892-sl94-acc3qpobcqw4 |
我寫如下,
SELECT customer_id,store_id FROM order_details GROUP BY customer_id HAVING COUNT(customer_id) > 1;
+-------------+--------------------------------------+
| customer_id | store_id |
+-------------+--------------------------------------+
| 1 | 3g07gd22-7eba-gae9-8aeb-aae3bae6wga0 |
| 3 | a36nn0r4-aq3c-76ea-baa4-73gba43q7aa1 |
我需要這樣的結果
+-------------+--------------------------------------+
| customer_id | store_id |
+-------------+--------------------------------------+
| 1 | 3g07gd22-7eba-gae9-8aeb-aae3bae6wga0 |
| 1 | 3g07gd22-7eba-gae9-8aeb-aae3bae6wga0 |
| 1 | aq8riuqj-vaef-fae2-aher-28acjxreqjxw |
| 3 | a1lkjerq-fape-bile-aof-asfdajvaa2938 |
| 3 | 239842as-2cr3-p892-sl94-acc3qpobcqw4 |
我想如何編寫 sql 代碼。 我希望你能解決這個問題。
謝謝。
您可以使用 window 函數:
SELECT customer_id, store_id
FROM (SELECT od.*, COUNT(*) OVER (PARTITION BY customer_id) as cnt
FROM order_details
) od
WHERE cnt > 1;
將原始表與獲取多訂單客戶的子查詢連接起來。
SELECT od.*
FROM order_details AS od
JOIN (
SELECT customer_id
FROM order_details
GROUP BY customer_id HAVING COUNT(*) > 1
) AS od1 ON od.customer_id = od1.customer_id
您可以加入一個派生表,該表聚合和過濾具有多個外觀的客戶。
SELECT od1.*
FROM order_details od1
INNER JOIN (SELECT od2.customer_id
FROM order_details od2
GROUP BY od2.customer_id
HAVING count(*) > 1) x
ON x.customer_id = od1.customer_id;
如果表有(主)鍵,您還可以使用EXISTS
和相關子查詢。
SELECT od1.*
FROM order_details od1
WHERE EXISTS (SELECT *
FROM order_detail od2
WHERE od2.customer_id = od1.customer_id
AND (od2.<1st key column>,
...
od2.<nth key column>) <> (od1.<1st key column>,
...
od1.<nth key column>));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.