【发布时间】:2020-04-26 06:18:59
【问题描述】:
我是 mysql 的新手,为了学习,我正在使用 w3schools 的示例数据库。因为我想为每个供应商创建一个视图,列出供应商名称、供应商不同产品的数量(PCount)、供应商不同产品类别的数量(CCount)。
这是我的表结构
Suppliers Products
-------------------- ----------------------------
SupplierID ProductID
SupplierName ProductName
ContactNumber SupplierID
Address CategoryID
City Unit
PostalCode Price
Country
Phone
我尝试的是
SELECT s.SupplierName, COUNT(DISTINCT(p.ProductID)) as PCount, COUNT(DISTINCT(p.CategoryID)) as CCount FROM Suppliers as s
right join Products as p
on s.SupplierID = p.SupplierID
这只是给我一个供应商名称,而不是所有具有不同产品和不同类别的供应商详细信息。
任何帮助将不胜感激。
【问题讨论】:
-
你需要
GROUP BY s.SupplierName -
副本使用不同的聚合函数(
GROUP_CONCAT与COUNT)但原理相同 -
@Nick 我没有收到你的最后评论。!你的意思是说我可以使用其中任何一个。?
-
不,我的意思是重复中的查询没有给出预期结果的原因是由于缺少
GROUP BY子句,这与您的查询相同的原因没有给出预期的结果。
标签: mysql sql-server