Неверный синтаксис рядом с ключевым словом «где». не могу понять эту ошибку - PullRequest
0 голосов
/ 19 апреля 2020
select SNo 
from Supplier  
Having AVG(Qty) IN (
    Select SNo, AVG(Qty)AS Average 
    from Supplier 
    Group By SNo 
)
where (Qty) >50 AND (Qty) <100;

Ответы [ 3 ]

2 голосов
/ 19 апреля 2020

Из комментариев:

Мне нужно выбрать SNo из таблиц со средним кол-во и более 50 и менее 100

Для этого вы можете использовать агрегацию и having предложение:

select sno, avg(qty) avg_qty
from supplier
group by sno
having avg(qty) > 50 and avg(qty) < 100
1 голос
/ 19 апреля 2020

Ваш вопрос немного сбивает с толку, но я считаю, что это так:

select tbaux.SNo from
(Select SNo, AVG(Qty) AS Average from Supplier Group By SNo ) as tbaux
where (tbaux.Qty) >50 AND (tbaux.Qty) <100;
1 голос
/ 19 апреля 2020

Вы можете просто использовать агрегирование без подзапроса:

select sno, avg(Qty) AS Average 
from supplier s
where qty > 50 and qty < 100
group by sno;

Если вы хотите фильтровать с агрегированными значениями, вы можете сделать:

select sno, avg(Qty) AS Average 
from supplier s
group by sno
having avg(qty) > 50 and avg(qty) < 100;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...