我看到了这个帖子:
SELECT
MAX(totalcontracts) AS highest_total
FROM ( SELECT
SuperVisor
,COUNT(ContractNo) AS totalcontracts
FROM Contract
GROUP BY SuperVisor
) AS t
如果我删除"作为t"返回错误的行。但是,当我把它放回去工作正常。 这是暂时的,所以为什么我要为这个子表格命名?有什么意义吗? 谢谢。
答案 0 :(得分:3)
在标准SQL中,派生表(从中选择数据的子查询)需要一个名称:
FROM (<subquery>) [AS] <name>`
(但是,某些DBMS不符合标准。例如,在Oracle中,不必为派生表提供别名,但在指定派生表时禁止使用可选AS
。其他DBMS on另一方面可能需要AS
,尽管SQL标准将其指定为可选。)
答案 1 :(得分:0)
正如@jarlh所提到的,如果您正在使用某些数据库系统,为了使用任何嵌套子查询的结果,您需要为该结果集提供一个名称(或别名),这就是您需要放置一个关闭paranthesis后的名称/字母/字符。
AS
关键字不是必需的,但名称为。
答案 2 :(得分:0)
不,这里没有真正的逻辑必然性 例如,Oracle不会强迫它
select * from (select * from dual);
Nor SQLite
select * from (select 1)