1

我正在使用 SQLFire。我正在做作业,在开始作业时,我发现我无法返回特定的值。请参阅此 SQL Fiddle,它包含我在作业中使用的表中的 EXACT 数据,它包含我尝试过的 SQL 语句。小提琴: http ://sqlfiddle.com/#!2/e761ac/1

我想要输出的是:

Rate | RentalCode
-----------------
350  |    WL

当我将代码输入 SQL Fire 时,我收到此错误。 错误信息

有人告诉我不要使用 ORDER BY 子句,我还没有学会“LIMIT”

谢谢

4

3 回答 3

2

您需要有子句,因为子句GROUP BY中有非聚合列SELECT

SELECT MIN(Rate), Rentalcode
FROM RentalRates 
GROUP BY Rentalcode

更新

由于您想获得最低费率,我认为这是比使用更好的方法,ORDER BY - LIMIT因为它支持具有最低费率的多条记录。

SELECT *
FROM RentalRates
WHERE rate = (SELECT MIN(rate) FROM rentalrates)
于 2013-08-20T05:40:51.570 回答
0

如您所见,即使在 SQLfiddle 中,您的结果也很奇怪——您从一条记录获取 RentalCode 并从另一条记录获取 Rate。
从没有分组的表中选择聚合是 MySQL 语法而不是 ANSI。如果您想获得最低费率的记录,这里有一个查询:

select * from RentalRates order by Rate limit 1

sql 小提琴演示

于 2013-08-20T05:48:42.493 回答
0

目前尚不清楚您想通过此查询获得什么。我想以下将起作用:

SELECT Rate, Rentalcode
FROM RentalRates 
order by Rate 
LIMIT 1

SQLFiddle 演示

于 2013-08-20T05:46:12.873 回答