我想根据另一列中的每个ID计算不同项目的数量。
例如
Color Value
Red 1
Red 1
Red 2
Red 2
Blue 3
Blue 3
我希望计数显示Red有2个不同的值而Blue只有1。 当非重复计数大于1时,摆脱那些具有较高的那些不同值的行。在这种情况下,我想要摆脱红色表示颜色,2表示值的行。
Color Value
Red 1
Red 1
Blue 3
Blue 3
这是我的真实查询:在这种情况下,FormSectionID将是颜色,myrank将是值。有没有办法将其用作子查询并得到我想要的东西?
SELECT DISTINCT TFormSectionID AS FormSectionID,
TFSSortOrder AS SectionSortOrder,
TSectionItemID AS SectionItemID,
TrendType,
DENSE_RANK() OVER (ORDER BY TFSSortOrder) AS myrank
FROM Report.TrendData
WHERE (ProgramID = 9) AND (TrendType > 0)
真实数据
FormSectionID SectionSortOrder SectionItemID TrendType Rank
12 7 90 1 1
12 7 91 1 1
12 7 154 1 1
12 7 528 1 1
12 9 154 1 2
12 9 528 1 2
答案 0 :(得分:1)
您可以使用带有子查询的聪明ballPerson
:
INNER JOIN
答案 1 :(得分:0)
这就是你想要的吗?
declare @tbColor as table (color nvarchar(5),value int)
insert into @tbColor select 'Red','1'
insert into @tbColor select 'Red','1'
insert into @tbColor select 'Red','2'
insert into @tbColor select 'Red','2'
insert into @tbColor select 'Red','3'
insert into @tbColor select 'Blue','3'
insert into @tbColor select 'Blue','3'
insert into @tbColor select 'Blue','4'
select color,value,count(*) as distinctValue from @tbcolor group by color,value