首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这句话行不通?SQL

为什么这句话行不通?SQL
EN

Stack Overflow用户
提问于 2013-08-20 05:38:15
回答 3查看 150关注 0票数 1

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

我想被输出的是:

代码语言:javascript
复制
Rate | RentalCode
-----------------
350  |    WL

当我在SQL中输入代码时,我会得到这个错误。

我被告知不要使用定单条款,我也没有学到“限制”。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-20 05:40:51

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

代码语言:javascript
复制
SELECT MIN(Rate), Rentalcode
FROM RentalRates 
GROUP BY Rentalcode

更新

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

代码语言:javascript
复制
SELECT *
FROM RentalRates
WHERE rate = (SELECT MIN(rate) FROM rentalrates)
票数 2
EN

Stack Overflow用户

发布于 2013-08-20 05:46:12

不清楚您想从这个查询中得到什么。我想以下几点是可行的:

代码语言:javascript
复制
SELECT Rate, Rentalcode
FROM RentalRates 
order by Rate 
LIMIT 1

SQLFiddle演示

票数 0
EN

Stack Overflow用户

发布于 2013-08-20 05:48:42

正如您所看到的,即使在SQLfiddle中,您的结果也是非常奇怪的--您从一个记录中获得RentalCode,从另一个记录中获得速度。

从表中选择聚合而不分组是MySQL语法,而不是ANSI。如果您想以最低速率获取记录,下面是一个查询:

代码语言:javascript
复制
select * from RentalRates order by Rate limit 1

sql小提琴演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18327673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档