2017-10-06 87 views
0

我有以下数据库表,我希望能够计算每个名称的每个product_id的数量。MySQL计数列

 
--------------------- 
| name | product_id | 
--------------------- 
| David |  1 | 
|Charlie|  1 | 
| David |  2 | 
| David |  1 | 
|Charlie|  2 | 
|Charlie|  3 | 
|Charlie|  2 | 
|Charlie|  3 | 
--------------------- 

我希望能够创建如下结果集;

 
---------------------------------------------------------------------------- 
| name | count(product_id_1) | count(product_id_1) | count(product_id_1) | 
---------------------------------------------------------------------------- 
| David |   2   |   1   |   0   | 
|Charlie |   1   |   2   |   2   | 
---------------------------------------------------------------------------- 

所以,请帮助我如何查询上述问题,感谢的

+1

编辑你的问题,显示原始数据。 –

+0

给SUM一个镜头,当它不起作用时,回来并发布你试过的东西,祝你好运。 https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html – Andrew

回答

0

如果您wan't到组的产品根据客户的数量,你可以做类似下面的,如果你要加入表。

SELECT NAME, COUNT(product_id1), COUNT(product_id2), COUNT(product_id2) FROM Customers c INNER JOIN Ordered_Products ON c.id = customer.id GROUP BY c.name

否则,如果你不是做你一起可以做以下

SELECT NAME, COUNT(product_id1), COUNT(product_id2), COUNT(product_id2) FROM Customers c GROUP BY c.name

+2

似乎这个问题被调整了一下。如果这就是你要找的东西,我会选择[fyrye](https://stackoverflow.com/users/1144627/fyrye)提供的内容。 – dreamquezt