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

在SQL中使用COUNT函数

梁修贤
2023-03-14
问题内容

首先,这是分配的一部分。

我正在尝试使用COUNT函数作为与Northwind数据库有关的查询的一部分。查询应返回CustomerID,CompanyName和
为每个相应的客户下的订单数

当然,前两部分很简单,但是我无法让COUNT函数正常工作。到目前为止,我的查询是:

SELECT DISTINCT Customers.CustomerID, Customers.CompanyName, COUNT(Customers.CustomerID)
FROM Orders, Customers
WHERE Customers.CustomerID = Orders.CustomerID;

以这种方式使用COUNT的正确语法是什么?它看起来像:

CompanyID | CompanyName | # of orders
    1     | Company A   | 4
    2     | Company B   | 3
    3     | Company C   | 5

到目前为止,所有示例都单独使用了COUNT函数,而不是更复杂查询的一部分。


问题答案:

您需要一个group by子句,该子句将允许您将结果分成组,并按组执行聚合函数count在本例中为):

SELECT   Customers.CustomerID, Customers.CompanyName, COUNT(*)
FROM     Orders, Customers
WHERE    Customers.CustomerID = Orders.CustomerID;
GROUP BY Customers.CustomerID, Customers.CompanyName

注意:尽管这不是问题的一部分,但是建议您使用显式joins,而不要使用您不赞成使用的隐式联接语法。在这种情况下,查询将类似于:

SELECT   Customers.CustomerID, Customers.CompanyName, COUNT(*)
FROM     Orders
JOIN     Customers ON Customers.CustomerID = Orders.CustomerID;
GROUP BY Customers.CustomerID, Customers.CompanyName


 类似资料:
  • COUNT() 函数返回匹配指定条件的行数。 SQL COUNT(column_name) 语法 COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):SELECT COUNT(column_name) FROM table_name; SQL COUNT(*) 语法 COUNT(*) 函数返回表中的记录数:SELECT COUNT(*) FROM table_nam

  • 问题内容: 我有一张桌子,我需要按以下方式显示输出。 rsp_ind = 0(表示“新”)和1(表示“ Accepted”(已接受))的行数 输出应为 我尝试使用以下查询。 和即时通讯输出为 有人可以帮助我调整查询以实现输出。注意:我不能为此加上一笔款项。它是更大程序的一部分,因此我无法为此添加超级查询。 问题答案: 您可以在此处查看此请求的输出

  • Count 函数 计算从查询返回的记录数。 语法 Count(expr) 其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL合计函数).您可以计算任何种类的数据,包含文本数据。 说明 可以使用 Count

  • 我有一张这样的桌子: 我想加上宽限期分数,条件是每个学生的总宽限期分数最多为6分,如果候选人在EC1中的28分和EC2中的27分两个科目中不及格,那么在加上宽限期EC1=30和EC2=30后,他是通过的。如果他在EC1中有25分,在EC2中有28分,那么需要的宽限期分数是5 2=7。因此,他是不及格的,没有宽限期分数,宽限期分数可以添加到最多两个科目。如果他在两个科目中不及格,那么他是不及格的,没

  • 问题内容: 我有以下查询: 会有什么区别,如果我更换,所有呼叫count(column_name)到count(*)? 这个问题的灵感源于我如何在Oracle的表中找到重复的值?。 为了澄清接受的答案(也许我的问题),替换count(column_name)与count(*)将在包含一个结果返回额外的行null和计数null列中的值。 问题答案: 计数为而不是 [编辑]添加了此代码,以便人们可以运

  • 问题内容: 只是想知道您是否有人用光了,性能是否存在明显差异,或者这仅仅是过去的日子所养成的传统习惯? 具体的数据库是。 问题答案: 没有区别。 原因: 在线书籍上说“ ” “ 1”是非空表达式:因此与相同。优化器可以识别它是什么:琐碎的。 与或相同 例子: 相同的IO,相同的计划,作品 编辑,2011年8月 关于DBA.SE的类似问题。 编辑,2011年12月 在ANSI-92中专门提到(请查找