zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

SQL语句详细说明[部分]

SQL 详细 说明 语句 部分
2023-06-13 09:14:02 时间
SQL语句教程(11)GroupBy
我们现在回到函数上。记得我们用
SUM
这个指令来算出所有的Sales(营业额)吧!如果我们的需求变成是要算出每一间店(store_name)的营业额(sales),那怎么办呢?在这个情况下,我们要做到两件事:第一,我们对于store_nameSales这两个栏位都要选出。第二,我们需要确认所有的sales都要依照各个store_name来分开算。这个语法为:
SELECT"栏位1",SUM("栏位2")FROM"表格名"GROUPBY"栏位1"
在我们的示范上
Store_Information表格

store_name

sales

date

LosAngeles

$1500

jan-05-1999

SanFrancisco

$300

jan-08-1999

Boston

$700

jan-08-1999


我们就打入
SELECTstore_name,SUM(Sales)FROMStore_InformationGROUPBYstore_name
结果:
store_nameSUM(Sales)
LosAngeles$1800
SanDiego$250
Boston$700

当我们选不只一个栏位,且其中至少一个栏位有包含函数的运用时,我们就需要用到GROUPBY这个指令。在这个情况下,我们需要确定我们有GROUPBY所有其他的栏位。换句话说,除了有包括函数的栏位外,我们都需要将其放在GROUPBY的子句中。

SQL语句教程(12)HAVING
那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过$1,500。在这个情况下,我们不能使用
WHERE
的指令。那要怎么办呢?很幸运地,SQL有提供一个
HAVING
的指令,而我们就可以用这个指令来达到这个目标。
HAVING
子句通常是在一个SQL句子的最后。一个含有HAVING子句的SQL并不一定要包含
GROUPBY
子句。HAVING
的语法如下:
SELECT"栏位1",SUM("栏位2")FROM"表格名"GROUPBY"栏位1"HAVING(函数条件)
请读者注意:GROUPBY子句并不是一定需要的。
在我们Store_Information表格这个例子中
Store_Information表格

store_name

sales

date

LosAngeles

$1500

jan-05-1999

SanFrancisco

$300

jan-08-1999

Boston

$700

jan-08-1999


我们打入
SELECTstore_name,SUM(sales)FROMStore_InformationGROUPBYstore_nameHAVINGSUM(sales)>1500
结果:

store_nameSUM(Sales)
LosAngeles$1800