在SELECT中使用count(*)over(…)语句中的计算列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SELECT中使用count(*)over(…)语句中的计算列相关的知识,希望对你有一定的参考价值。
我在SQL Server Management Studio 2014中具有以下选择语句:
SELECT main.car_descr
,vari.engineCode
,count(*) over(partition by vari.engineCode) as quant
FROM dbspareparts.dbo.stock as stock
inner join fiord.dbo.store as main on stock.[id_store]=main.[id_store]
where quant>2
order by quant desc
执行时,我在指令上得到“无效的列名”
where quant>2
为什么以及如何获得这项工作?
我需要使用count(*)over(...)语句,因为这只是另一个更长的查询的一部分。
谢谢!
答案
直到查询返回后,quan才被绑定为变量,因此您需要将其包装在内部查询中,然后才能对其进行过滤。以上是关于在SELECT中使用count(*)over(…)语句中的计算列的主要内容,如果未能解决你的问题,请参考以下文章
DB2 SQL Count over Union of multiple tables with different Datatype
在同一个 SQL 查询中使用 rank() 和 count()
分区函数 COUNT() OVER 可能使用 DISTINCT
Junit 测试用例 - HSQLDB count(...) over (partition ... order by ...)