Я видел несколько тем об использовании этих трех функций, но я не могу получить результаты, которые я хочу, исходя из того, что я читаю.GROUP BY, HAVING и COUNT, чтобы получить агрегированные результаты
Я использую SQL Server 2012. Таблица APXFirm.AdvApp.vPerformance Здесь схема таблицы
Я попробовал следующий запрос:
USE APXFirm
SELECT PortfolioBaseCode
,COUNT( portfoliobasecode) AS Pcount
FROM APXFirm.AdvApp.vPerformance
WHERE rowtypecode = 'd'
and DetailKeyCode is NOT NULL
and NetOrGrossCode = 'n'
and DetailKeyCode <> 'us'
and PortfolioBaseCode IN ('test','test2')
GROUP BY PortfolioBaseCode,
NetOrGrossCode,
RowTypeCode ,
DetailKeyCode ,
MarketValue
HAVING marketvalue > 1
Но это дает мне результат как это:
PortfolioBaseCode Pcount
test 1
test 1
test 1
test2 1
test2 1
test2 1
test2 1
Я хочу, чтобы результат, как этот
PortfolioBaseCode Pcount
test 3
test2 4
Я не уверен, что мне нужен подзапрос, соединение или использование отдельных в счете для достижения этого или чего-то еще. Я также пробовал эту строку, но это не изменило результат.
,COUNT(DISTINCT portfoliobasecode) AS Pcount
Благодаря
Этот запрос объединяет все в одну строку и показывает только первый файл portfoliobasecode. В этом случае Test, чтобы получить результат теста 3 –
@JayC. , , Это должно создать одну строку для каждого значения 'PortfolioBaseCode', который, кажется, будет тем, что вы хотите. Если вы получаете только одно значение, то предложения 'WHERE' и' HAVING' фильтруют все остальное. –
Да, я считаю, что он работает сейчас. –