Подзапрос SQL со средним - PullRequest
       27

Подзапрос SQL со средним

0 голосов
/ 27 февраля 2019

Я пытаюсь ответить на следующий вопрос: перечислите транзакции вместе с именами клиентов, которые внесли сумму инвестиций, превышающую среднюю сумму инвестиций для каждой линейки продуктов.

Образец моих данныхвыглядит следующим образом:

Таблица ProductLine

ProductLineID  ProdLine
1              Annuity
2              Disability Insurance
3              Life Insurance

Таблица продуктов

Product     SupID   Commission PLID
10 Payments  107    45         3
20 Payments  107    45         3
Accent-Life  120    35         3

Таблица транзакций имеет следующие столбцы

mSRSnum  mClientLName mClientFname mProduct mAmount

Мой кодследующее.Код выдает ошибку слишком многих значений.Есть ли другой способ ответить на вопрос выше?

  select mSRSnum, mclientFname, mClientLname
  From Transaction
  where mamount > (select Prodline, AVG(mAmount) from Productline
  group by Prodline)

1 Ответ

0 голосов
/ 27 февраля 2019

Использовать оконные функции:

select mSRSnum, mclientFname, mClientLname
from (select t.*,
             avg(mAmount) over (partition by productline) as avg_mAmount
      from Transaction t
     ) t
where mAmount > avg_mAmount;
...