我一直试图找到所售产品的第三高成本。 从表tblproducts.i我正在使用mysql server 5.6。
我使用了以下查询:
select name
from tblproducts
where cost IN
(select distinct top 3 cost
from tblproducts
order by cost desc);
但是当我运行查询时,它会显示以下错误:
错误1064(42000):您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以便在'3 cos附近使用正确的语法 Ť 来自tbbproducts 按成本排序')第4行
..................... 有人帮我修改了这个错误的语法。
三江源。
答案 0 :(得分:0)
SELECT t1.name
FROM tblproducts t1
WHERE (3) = ( SELECT COUNT(t2.cost)
FROM tblproducts t2
WHERE t2.cost >= t1.cost
)
在这里演示:
<强>更新强>
只要tblproducts
中没有可能存在重复成本的产品,上述查询就可以正常运行。如果有成本重复的可能性,那么我们可以按如下方式修改查询:
SELECT t1.name
FROM tblproducts t1
WHERE (3) = ( SELECT COUNT(t2.cost)
FROM (SELECT DISTINCT cost FROM tblproducts) t2
WHERE t2.cost >= t1.cost
)