我有一个名为订单查询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