SELECT distinct RESTAURANT, RANK,
(select avg(SCORE)
from TRIPADVISOR
where rank<=10 and rank>=0) as top10
FROM TRIPADVISOR
ORDER BY RANK LIMIT 10
union all
SELECT distinct RESTAURANT, RANK,
(select avg(SCORE)
from TRIPADVISOR
where rank<=249 and rank>=57) as bottom10
FROM TRIPADVISOR
ORDER BY RANK DESC LIMIT 10
我想问一个简短的问题。正如您在上面所看到的,我在同一个表中有两个查询,我想合并它们。我是sql新手,所以大部分函数和聚合,我都不熟悉。这就是困境。我有一个tripadvisor表,由餐厅列(餐厅名称)、排名列(旅行顾问排名)和分数列组成。对于第一个查询,我成功地获得了tripadvisor前10名的平均分数。对于倒数第十名的人来说,这是倒数第十名。问题是,我必须在一个查询中合并这两个平均结果。第一个在一个查询选项卡中,第二个在另一个查询选项卡中。我刚刚将第二个查询复制到第一个查询并插入了union all。我正在使用mysqlworkbench。它给我的错误是:union在此位置无效,应为:eof:','。任何建议都会有帮助。谢谢您。
1条答案
按热度按时间5vf7fwbs1#
您需要将查询包含在
()
如果你想用ORDER BY
或者LIMIT
应用于UNION
(参见手册):