派生表是一个查询结果生成的表,类似于临时表。
派生表可以简化查询,避免使用临时表。相比手动生成临时性能更优越。派生表与其他表一样出现在查询的FROM子句中
select * from (select * from athors) temp
temp 就是派生表
Every derived table must have its own alias(每个派生表必须有自己的别名)
派生出来的表必须要是一个有效的表.因此,它必须遵守以下几条规则:
1. 所有列必须要有名称
2. 列名称必须是要唯一
3. 不允许使用ORDER BY(除非指定了TOP)
eg.
bbc国家概况表
显示每个地区以及的该地区国家总人口数不少于1000万的国家总数.
SELECT
region,
COUNT
(name)
FROM
bbc
WHERE
population
>=
10000000
GROUP
BY
region
使用派生表:
SELECT
region,
COUNT
(name)
FROM
(
SELECT
region, name
FROM
bbc
WHERE
population
>=
10000000
) temp1
GROUP
BY
region
or:
SELECT
region,
COUNT
(name)
FROM
(
select
name,region
from
bbc
where
population
>=
10000000
)
as
temp1
group
by
region