Использование вычисляемого столбца из оператора count (*) over (...) в SELECT - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть этот оператор выбора в 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

при выполнении я получаю «неверное имя столбца» на istruction

where quant>2

Почему и как я могу получить эту работу?

Мне нужно использовать оператор count (*) over (...), потому что это только часть другого более длинного запроса.

Спасибо!

1 Ответ

1 голос
/ 17 февраля 2020
select * from (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]) as tbl

where quant>2

order by quant desc

квант не привязан как переменная до тех пор, пока ваш запрос не вернется, поэтому вам нужно будет обернуть его во внутренний запрос, прежде чем вы сможете его фильтровать.

...