我有一个名为Order
的表-______________________
|Order_id | customer_id |
|_________|_____________|
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | a |
|_________|_____________|
我需要一个查询来查找Customer_id,其中包含多个订单的列表并将这些内容存储在新表中
答案 0 :(得分:0)
查找包含多个订单列表的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
答案 1 :(得分: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