Sql 子查询返回了多个值
我必须编写一个查询,返回的图书价格大于同类图书的平均价格。因此,我使用以下查询完成了此操作:Sql 子查询返回了多个值,sql,Sql,我必须编写一个查询,返回的图书价格大于同类图书的平均价格。因此,我使用以下查询完成了此操作: select title from titles where price > ( select avg(price) from titles group by type ) 但是,它会抛出以下错误: subquery returned more than 1 value >不能用于值列表是可以理解的。但我想知道解决这个问题的方法。请让我知道我需要使用的查询。DB是酒吧 tit
select title
from titles
where price >
(
select avg(price)
from titles
group by type
)
但是,它会抛出以下错误:
subquery returned more than 1 value
>不能用于值列表是可以理解的。但我想知道解决这个问题的方法。请让我知道我需要使用的查询。DB是酒吧
titles table:
title_id , title, type, price, advance, notes, sales
因此,我需要使用类似类型的price>average(price)来获取标题您有多个类型,因此每个类型都返回一个平均值 您可以查看或运算符以查看项目列表 如果您正在寻找价格高于所有平均类型的书籍,例如:
SELECT title
FROM titles
WHERE price > ALL
(
SELECT AVG(price)
FROM titles
GROUP BY type
)
类似地,您可以将
ALL
更改为SOME
或ANY
,以满足您的需要。您有多个类型,因此每个类型都返回一个平均值
select title
from titles
where price >
(select avg(price) from titles)
您可以查看或运算符以查看项目列表
如果您正在寻找价格高于所有平均类型的书籍,例如:
SELECT title
FROM titles
WHERE price > ALL
(
SELECT AVG(price)
FROM titles
GROUP BY type
)
同样,您可以将ALL
更改为SOME
或ANY
,以满足您的需要
select title
from titles
where price >
(select avg(price) from titles)
上面的查询假设您希望比较所有标题价格的平均值。这将返回一个标量值并允许您的查询成功
上面的查询假设您希望比较所有标题价格的平均值。这将返回标量值并允许您的查询成功。关键是使用主查询中的类型来筛选子查询中的类型
SELECT t.title
FROM titles t
WHERE t.price > (SELECT AVG(t2.price)
FROM titles t2
WHERE t2.type = t.type)
关键是使用主查询中的类型来筛选子查询中的类型
SELECT t.title
FROM titles t
WHERE t.price > (SELECT AVG(t2.price)
FROM titles t2
WHERE t2.type = t.type)
您需要从子查询和主查询链接类型,例如:
select
a.title
from
titles a
where
a.price > ( select avg(b.price) from titles b where a.type = b.type group by b.type)
您需要从子查询和主查询链接类型,例如:
select
a.title
from
titles a
where
a.price > ( select avg(b.price) from titles b where a.type = b.type group by b.type)
如果“标题”表中有多个“类型”,则group by将导致多行。如果您只需要整个表的平均价格,请删除子查询中的“分组依据”。您使用的sql是什么风格的?如果“标题”表中有多个“类型”,则分组依据将导致多行。如果您只需要整个表的平均价格,请删除子查询中的“group by”。您使用的是什么风格的sql?但它应该获得类似类型的平均价格,然后检查价格column@Nishanth然后在子查询中需要有一个过滤器,以便它只返回一个值。如果你给我更多关于
标题表的信息,我可以为你写出来。但是它应该得到类似类型的平均值,然后检查价格column@Nishanth然后在子查询中需要有一个过滤器,以便它只返回一个值。如果你给我更多关于标题表格的信息,我可以帮你写出来。也许OP想要的比我的答案还多,+1。我同意@AdamWenger。我可以更新我的答案,但它会准确地反映你在这里+1很可能OP想要的比我的答案还多,+1.我同意@AdamWenger。我可以更新我的答案,但它会准确地反映你在这里+1你不需要小组成员在你的子区这是事实,我错了。谢谢你,你不需要在你的子组里分组这是事实,我错了。谢谢你的帮助。