sql标准-在聚合函数中使用聚合函数

sql标准-在聚合函数中使用聚合函数,sql,aggregate-functions,Sql,Aggregate Functions,我有3个不同结构的表,它们共享相同的逻辑列:price。我想从所有3个表的所有记录中找出最大的价格。我正在尝试类似的东西: SELECT MAX(price) FROM ( SELECT MAX(price) FROM pc UNION SELECT MAX(price) FROM printer UNION SELECT MAX(price) FROM laptop ); 但是我得到了一个语法错误:“;”附近的语法不正确。什么是错误的,它应该是什么样子?这应该与SQL标准兼容,而不是特定

我有3个不同结构的表,它们共享相同的逻辑列:
price
。我想从所有3个表的所有记录中找出最大的价格。我正在尝试类似的东西:

SELECT MAX(price) FROM (

SELECT MAX(price) FROM pc
UNION
SELECT MAX(price) FROM printer
UNION
SELECT MAX(price) FROM laptop

);

但是我得到了一个语法错误:“;”附近的
语法不正确。什么是错误的,它应该是什么样子?这应该与SQL标准兼容,而不是特定的RDBMS。

您需要为子查询指定别名

SELECT MAX(price) max_price
FROM 
(
    SELECT price FROM pc
    UNION ALL
    SELECT price FROM printer
    UNION ALL
    SELECT price FROM laptop
) subquery

不需要在子查询中获取最高价格。

您需要为子查询指定别名

SELECT MAX(price) max_price
FROM 
(
    SELECT price FROM pc
    UNION ALL
    SELECT price FROM printer
    UNION ALL
    SELECT price FROM laptop
) subquery
不需要在子查询中获取最高价格。

尝试此sql

SELECT MAX(price) FROM (

SELECT MAX(price) as price FROM pc
UNION
SELECT MAX(price) as price FROM printer
UNION
SELECT MAX(price) as price FROM laptop

) t;
试试这个sql

SELECT MAX(price) FROM (

SELECT MAX(price) as price FROM pc
UNION
SELECT MAX(price) as price FROM printer
UNION
SELECT MAX(price) as price FROM laptop

) t;

max\u price
是否与
与max\u price
相同?最后一行中的
子查询是什么?
AS
是一个可选关键字,所以它是相同的
subquery
是子查询的别名。只要不是保留密钥,您可以随时更改它。顺便问一下,您使用的是什么数据库服务器?您尝试执行上面的查询了吗?嗯,它是sql-ex.ru,一个sql学习平台。他们可能正在使用MS SQL,但我不确定。错误信息是我从那里得到的。这个学习平台应该使用SQL标准。顺便说一句,我所问的只是整个问题的一小部分;)谢谢
max\u price
是否与
与max\u price
相同?最后一行中的
子查询是什么?
AS
是一个可选关键字,所以它是相同的
subquery
是子查询的别名。只要不是保留密钥,您可以随时更改它。顺便问一下,您使用的是什么数据库服务器?您尝试执行上面的查询了吗?嗯,它是sql-ex.ru,一个sql学习平台。他们可能正在使用MS SQL,但我不确定。错误信息是我从那里得到的。这个学习平台应该使用SQL标准。顺便说一句,我所问的只是整个问题的一小部分;)谢谢您应该在内部查询中添加别名,如“Max(price)as price”。试试这个,这也可能是错误的原因。另外,您需要提供别名的子查询应该在内部查询中添加别名,如“Max(price)as price”。试试这个,这也可能是错误的原因。还包括需要提供别名的子查询