我想根据另一列中的每个ID来计算不同项目的数量。根据分组条件计算不同的项目
例如
Color Value
Red 1
Red 1
Red 2
Red 2
Blue 3
Blue 3
我想要的计数显示红色的有2个不同的价值观和蓝只有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
为什么在您的预期结果中有2行蓝色? – Squirrel
因为对于蓝色的值,不同的计数不会大于1。蓝色的值只包含3. – James
@Squirrel我认为他只是想滤掉颜色组中的任何值,而不是该组中的最小值。 –