別の列の各IDに基づいて異なる項目の数をカウントしたいと思います。例えばgroup by節に基づいて異なる項目をカウントする
Color Value
Red 1
Red 1
Red 2
Red 2
Blue 3
Blue 3
私は赤が2つの異なる値を持っていることを示すために、カウントをしたいとブルーは、ときにのみ個別のカウント数を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列のBlueがあるのはなぜですか? – Squirrel
ブルーの値では、別個のカウントが1より大きくならないためです。青の値には3しか含まれていません。 – James
@Squirrel彼は、そのグループの最小値ではないカラーグループの任意の値をフィルタリングしたいと思うと思います。 –