派生表是一个查询结果生成的表,类似于临时表。
派生表可以简化查询,避免使用临时表。相比手动生成临时性能更优越。派生表与其他表一样出现在查询的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