Я хочу, чтобы выбрать несколько значений из трех таблиц с агрегатной функцией, но без дублей в одном из столбцов, например:Как выбрать различные значения после левого внешнего соединения операции
select t3.ValueDesc as FeatureType,
count(t2.Strategic) as TotalCount
,t2.RequestID,t1.StoryID --these are not needed, but put for better vision
from tblRequests t2
left outer join (select * from tblAgileMultiDD where Type=18) t3
on t3.FormulaValue = t2.Strategic
left outer join tblAgileStory t1
on t1.Feature = t2.RequestID
where t2.RequestID > 0
and t1.DemoStatus = 1
group by t3.ValueDesc
,t2.RequestID, t1.StoryID --these are not needed but put for better vision
order by t3.ValueDesc
И тогда он возвращает мне что-то как это:
FeatureType TotalCount RequestID StoryID
Protect Base 1 311 1629
Protect Base 1 311 1630
Protect Base 1 312 1631
Protect Base 1 312 1637
New Market 1 313 1640
New Market 1 313 1645
И если я закомментируйте строки с "t2.RequestID, t1.StoryID", это дает мне результат:
FeatureType TotalCount
Protect Base 4
New Market 2
Итак, для каждой уникальной комбинации RequestID и StoryID возвращается новая строка. Как заставить его возвращать новую строку только для каждого уникального RequestID независимо от StoryID? Поэтому я хочу этот запрос, чтобы привести, как это:
FeatureType TotalCount
Protect Base 2 (for RequestID = 311, 312)
New Market 1 (for RequestID = 313)
Ввод слова «отличие» в начале не вступает в силу на нем. Можете ли вы мне помочь?
Что относительно count (Distinct t2.Strategic), или, скорее, считать разным на основе requestID –
Я думаю, вы уже нашли решение: удалите 't2.RequestID' и' t1.StoryID' из ваших 'SELECT' и Предложение GROUP BY. –