SELECT COUNT(DISTINCT store_name)
FROM Store_Information
查询结果显示为:
Count(DISTINCT store_name)
3
GROUP BY
下面我们来进一步看一下SQL语言中的集合函数。上文中,我们曾使用SUM函数计算所有商店的销售总额,如果我们希望计算每一家商店各自的总销售额时该怎么办呢?要实现这一目的我们需要做两件事:首先,我们需要查询商店名称和销售额两个字段;然后,我们使用SQL语言的GROUP
BY命令将销售额按照不同的商店进行分组,从而计算出不同商店的销售总额。GROUP BY命令的语法格式为:
SELECT "column_name1", SUM("column_name2")
FROM "table_name"
GROUP BY "column_name1"
我们可以使用如下命令实现上述查询目的:
SELECT store_name, SUM(Sales)
FROM Store_Information
GROUP BY store_name
查询结果显示为:
store_name SUM(Sales)
Los Angeles $1800
San Diego $250
Boston $700
小注:
GROUP BY关键字一般应用于同时查询多个字段并对字段进行算术运算的SQL命令中。
HAVING
用户在使用SQL语言的过程中可能希望解决的另一个问题就是对由sum或其它集合函数运算结果的输出进行限制。例如,我们可能只希望看到Store_Information数据表中销售总额超过1500美圆的商店的信息,这时我们就需要使用HAVING从句。语法格式为:
SELECT "column_name1", SUM("column_name2")
FROM "table_name"
GROUP BY "column_name1"
HAVING (arithematic function condition)
(GROUP BY从句可选)
由此,我们可以使用如下命令实现上述查询目的:
SELECT store_name, SUM(sales)
FROM Store_Information
GROUP BY store_name
HAVING SUM(sales)
$#@62; 1500
查询结果显示为:
store_name SUM(Sales)
Los Angeles $1800