2016-02-11 103 views
1

我有一個名爲訂單查詢MySQL數據庫

-______________________ 
|Order_id | customer_id | 
|_________|_____________| 
|  1 | a  | 
|  2 | b  | 
|  3 | c  | 
|  4 | a  | 
|_________|_____________| 

我需要一個查詢,發現包含一個以上的訂單列表中選擇CUSTOMER_ID和這些內容存儲在一個新表的表

+0

@philipxy它的Mysql – Yuvi

+0

@philipxy完成! – Yuvi

+0

你的意思是什麼「內容」?有多個訂單的customer_id?請編輯示例輸出(分配)到您的問題中。 – philipxy

回答

0

發現包含一個以上的訂單

所以只是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 
0

這個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 
+0

由於order_id不是每個customer_id的單值,所以不應選擇它。 – philipxy