sql标准-在聚合函数中使用聚合函数
我有3个不同结构的表,它们共享相同的逻辑列: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标准兼容,而不是特定
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”。试试这个,这也可能是错误的原因。还包括需要提供别名的子查询