我有一個名爲訂單查詢MySQL數據庫
-______________________
|Order_id | customer_id |
|_________|_____________|
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | a |
|_________|_____________|
我需要一個查詢,發現包含一個以上的訂單列表中選擇CUSTOMER_ID和這些內容存儲在一個新表的表
我有一個名爲訂單查詢MySQL數據庫
-______________________
|Order_id | customer_id |
|_________|_____________|
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | a |
|_________|_____________|
我需要一個查詢,發現包含一個以上的訂單列表中選擇CUSTOMER_ID和這些內容存儲在一個新表的表
發現包含一個以上的訂單
所以只是COUNT()
或行對於任何給定列表中選擇CUSTOMER_ID?事情是這樣的:
SELECT COUNT(order_id) AS order_count, customer_id FROM test GROUP BY customer_id
這將返回:
order_count customer_id
--------------------------
2 a
1 b
1 c
如果你想要的結果,以進一步減少到只有那些擁有不止一個數量級,只是對過濾。我的SQL是一個有點生疏,但是這應該做的伎倆:
SELECT * FROM
(SELECT COUNT(order_id) AS order_count, customer_id FROM order GROUP BY customer_id) AS order_counts
WHERE order_count > 1
這將產生:
order_count customer_id
--------------------------
2 a
這個SQL將創建一個新表的客戶超過1個訂單
CREATE TABLE Multiple_Orders AS
SELECT order_id, customer_id, COUNT(*) AS order_cnt FROM order
GROUP BY customer_id
HAVING order_cnt > 1
由於order_id不是每個customer_id的單值,所以不應選擇它。 – philipxy
@philipxy它的Mysql – Yuvi
@philipxy完成! – Yuvi
你的意思是什麼「內容」?有多個訂單的customer_id?請編輯示例輸出(分配)到您的問題中。 – philipxy