2015-05-29 68 views
1

你好,我有一个简短的问题。SELECT应该给出1:n realtionship中的唯一n的个数

对于在大学的练习,我有一个完整的连接表。

在这个表格中是一个名为supplier和column prduct_id的列。

现在我想做出一个选择,其执行以下操作:

我想要得到的唯一(不同)的product_id的数量每个供应商

我试过以下,但它给我由供应商

SELECT DISTINCT COUNT(`product_code`),`id_supplier` FROM `refactored_data` 
    GROUP BY `refactored_data`.`id_supplier` ORDER BY 
    `refactored_data`.`id_supplier` ASC 
+0

你应该把在COUNT DISTINCT()一个低于 COUNT(DISTINCT'product_code') –

+0

@ Krie9er请注明我的答案对是否能解决你的问题给出。 –

回答

2

分组的所有行的数量试试这个:

SELECT COUNT(DISTINCT product_id), id_supplier 
FROM refactored_data 
GROUP BY id_supplier 

因此,您的查询似乎比您想象的要简单。

0

您正在按供应商和公司计数产品进行分组。然后你说你只需要不同的结果,但不会改变任何结果,因为你的结果已经是唯一的。

在您的COUNT中移动DISTINCT,以计算不同的值,而不是让您的线条不同。

SELECT COUNT(DISTINCT product_code), id_supplier 
FROM refactored_data 
GROUP BY id_supplier 
ORDER BY id_supplier ASC; 
相关问题