首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行不带子查询的查询以生成结果

运行不带子查询的查询以生成结果
EN

Stack Overflow用户
提问于 2017-04-13 23:25:01
回答 3查看 28关注 0票数 0

'MotorVehicles' Table

我运行了一个查询来查找附加表的'AVG(Price) * 2‘,然后我运行了另一个查询,其中我用硬数字替换了'AVG(Price) * 2’,我能够获得结果表中的两个记录,我尝试在'Having‘子句中使用聚合函数,但我的结果表返回为空。需要一些帮助我想制定一个无子查询的SELECT语句来查找所有的机动车谁的价格是更多或等于‘AVG(价格* 2)’在附加表中。

提前感谢

EN

回答 3

Stack Overflow用户

发布于 2017-04-13 23:31:58

许多方法,这不是很好,但它可以工作:

代码语言:javascript
复制
;with cte_a as
(
    select avg(Price)*2 [Average]
    from yourTable
    -- or whatever your query to get average is as long as only 1 result
)
select *
from yourTable yt
inner join cte_a a on 1 = 1
where price >= a.Average
票数 0
EN

Stack Overflow用户

发布于 2017-04-13 23:33:47

代码语言:javascript
复制
select * from MotorVehicles where price > (select avg(price) from t)*2;

如果这是您想要避免的子查询,我很抱歉。

票数 0
EN

Stack Overflow用户

发布于 2017-04-13 23:52:34

您可以使用分区的AVG()获得类似的结果。

代码语言:javascript
复制
DECLARE @T TABLE
(
    X INT
)

INSERT @T SELECT 1
INSERT @T SELECT 10
INSERT @T SELECT 15
INSERT @T SELECT 20

SELECT X,XAVG=AVG(X) OVER(PARTITION BY 1 ) FROM @T   

结果是:

代码语言:javascript
复制
X   XAVG
1   11
10  11
15  11
20  11
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43396202

复制
相关文章

相似问题

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