【问题标题】:How do I select the count of records, then group them by a foreign key?如何选择记录数,然后按外键分组?
【发布时间】:2013-02-20 02:19:11
【问题描述】:

我有两个表:Products 和 Suppliers。 SupplierID 是产品表中的外键。我需要从供应商表中创建一个包含国家、供应商ID、公司名称的表格,然后我需要知道每个供应商拥有的产品数量。我尝试了以下查询:

SELECT DISTINCT s.country, 
                s.supplierid, 
                s.companyname, 
                (SELECT Count(DISTINCT productid) AS 
                        "Number of Products Supplied" 
                 FROM   products 
                        INNER JOIN suppliers 
                                ON p.supplierid = s.supplierid) AS 
                "Number of products Supplied" 
FROM   suppliers s, 
       products p 
WHERE  ( s.country = 'usa' 
          OR s.country = 'uk' ) 
       AND s.supplierid = p.supplierid 

但我得到的是产品总数,而不是每个供应商提供的产品数量。有什么想法吗?

【问题讨论】:

  • 请停止混合隐式和显式 JOIN 语法。

标签: sql select count


【解决方案1】:
SELECT s.country, s.supplierid, s.companycame, Count(*) AS Number_of_Products_Supplied
FROM suppliers s
 JOIN products p ON s.supplierid=p.supplierid
WHERE s.country IN ('usa', 'uk')
GROUP BY s.country, s.supplierid, s.companycame

如果我理解您的问题,我认为这应该可以满足您的要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多