2010-09-29 86 views
1

我在这个子查询中有一个语法错误,我似乎无法弄清楚它为什么不起作用。所有的括号匹配sqlite子查询语法错误

select min(max_s) 
from 
(select max(salary) from instructor group by dept_name) 
as s(max_s); 

Error: near "(": syntax error 

回答

3

用途:

SELECT MIN(x.max_s) 
    FROM (SELECT MAX(i.salary) AS max_s 
      FROM INSTRUCTOR i 
     GROUP BY i.dept_name) x 
+0

我不明白为什么你的答案下半年将是真实的。我试图在按部门分组后找到最小值,然后查找该组的最大值。 – 2010-09-29 00:36:32

+0

@ controlfreak123:对不起,我误读了。我通常在输出中包含我正在分组的列,以查看附加值的含义,因此我没有仔细阅读并假定内部查询将仅返回一行/记录。 – 2010-09-29 00:40:03

+0

这相当好。我还注意到,我可以忽略x别名,因为它知道max_s在子查询中。 – 2010-09-29 01:14:33

2

的问题是在AS s(max_s)表的别名,它看起来并不完全正确。例如:您应该在子查询中为列名添加别名,例如:

select min(s.max_s) 
from 
(select max(salary) as max_s from instructor group by dept_name) 
as s 
0

不要在表别名之后放置parens。