欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL语句详细说明[部分]

程序员文章站 2022-11-21 12:30:57
sql 语句教程 (11) group by 我们现在回到函数上。记得我们用sum这个指令来算出所有的 sales (营业额)吧!如果我们的需求变成是要算出每一间店 (...
sql 语句教程 (11) group by

我们现在回到函数上。记得我们用
sum
这个指令来算出所有的 sales (营业额)吧!如果我们的需求变成是要算出每一间店 (store_name) 的营业额 (sales),那怎么办呢?在这个情况下,我们要做到两件事:第一,我们对于 store_name sales 这两个栏位都要选出。第二,我们需要确认所有的 sales 都要依照各个 store_name 来分开算。这个语法为:
select "栏位1", sum("栏位2") from "表格名" group by "栏位1"
在我们的示范上
store_information
表格

store_name

sales

date

los angeles

$1500

jan-05-1999

san francisco

$300

jan-08-1999

boston

$700

jan-08-1999


我们就打入
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 这个指令。在这个情况下,我们需要确定我们有 group by 所有其他的栏位。换句话说,除了有包括函数的栏位外,我们都需要将其放在 group by 的子句中。

sql 语句教程 (12) having

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

store_name

sales

date

los angeles

$1500

jan-05-1999

san francisco

$300

jan-08-1999

boston

$700

jan-08-1999


我们打入
select store_name, sum(sales) from store_information group by store_name having sum(sales) > 1500
结果 :

store_name sum(sales)
los angeles $1800