当前位置: 首页 > 面试题库 >

SQL-连接两个表并计数项目

常温文
2023-03-14
问题内容

好的,我试图查看每个供应商提供了多少个产品(“产品”和“供应商”为单独的表格)。我希望将结果与公司名称和公司提供的产品数量一起显示。我不确定该如何设置。

到目前为止,我有:

SELECT CompanyName, Count(ProductName) FROM Suppliers 
left join Products on Suppliers.SupplierID = Products.SupplierID;

我不确定如何使每个公司的ProductName计数。如果您能为我提供任何帮助,我将不胜感激。


问题答案:

您所缺少的只是GROUP BY子句:

SELECT CompanyName, Count(ProductName)
  FROM Suppliers LEFT JOIN Products
    ON Suppliers.SupplierID = Products.SupplierID
 GROUP BY CompanyName;

使用LEFT {OUTER}
JOIN意味着如果某些供应商不提供任何产品,则该联接将为与Products表相对应的列返回一组NULL值。然后,COUNT(ProductName)仅计算非空值的数量,从而为不提供产品的公司提供答案0。通常,您会使用常规的INNER
JOIN,然后看不到没有提供产品的公司。



 类似资料:
  • 我正在尝试使用以下有问题的sql查询计算特定页面上的注释: 问题是它输出的是0而不是2。 表列如下: 页数: 评论: 因此,实际上,原始查询应该从中获取每个注释的真(如pages表中设置的,由连接 完成连接和/或获得计数的最终代码是什么样子的?谢谢.

  • 我需要连接来自两个不同表的数据,如下所示。仅使用一个sql查询就可以做到这一点吗?如果“key”和“name”在两个表上,那么它们是相同的。表1中的“状态”始终为“-”,表2中的“T”。此外,两个表上的“名称”和“comp”都匹配(例如:Name3-C和Name4-B)<我尝试过“联合”和“加入”,但还没有解决办法! 表1 表2 结果应该是。。。 提前谢谢!

  • 问题内容: 我有一个表“ lijsten”,一个表“ werknemerlijsten”和一个表“ categorieen”。 现在我正在使用查询来获取计数 但是,当我尝试使用另一个表的另一个计数进行相同的查询时,结果为假。 任何想法我可能做错了吗?谢谢 问题答案: 您的引入了具有给定ID多个匹配项的表。固定计数的快速简便方法是使用而不是: 另一种方法是在联接之前聚合表,并在子查询中进行计数。

  • 问题内容: 谁能告诉我如何编写查询并如上所述获取结果,谢谢!我试过加入,左右加入。一切都没有结果。 问题答案: 您可以在这两个表之间写左外部联接最好的理解方法是检查下图 查询您的要求 阅读有关 代码项目的 原始文章将对您有很大帮助:SQL Joins的可视表示 。 在以下位置找到原始版本:MySQL中的JOIN和OUTER JOIN之间的区别 。

  • 问题内容: 我有具有相同结构的不同表,我想通过它们的一列将它们连接起来。 问题在于他们不共享该列中的信息。 结果表: (在单列中) 到目前为止,我已经尝试过: 我知道我的查询是错误的,因为我要调用更多我想要的列,但是我不确定如何将所有列合并到一个列中。我该怎么做? 问题答案: 你有没有尝试过? 如果您不想排除重复的值,则可能要使用。 要限制结果集,您可以执行以下操作:

  • 问题内容: 我有两个表,如下所示: 我想列出参加活动17的所有人(包括学生和教师)的名字。无论如何,我可以获得以下结果: 无需创建新表(仅使用表达式或派生关系的嵌套)? 在actid上加入JOIN会得到如下结果: 我想我需要一种串联形式? 问题答案: 您可能(或可能不需要)对ID不唯一的内容进行处理,例如