Narazil jsem na tuto otázku při hledání řešení mého problému počítání různých hodnot. Při hledání odpovědi jsem narazil na tento příspěvek . Viz poslední komentář. Testoval jsem to a použil SQL. Funguje to pro mě opravdu dobře a napadlo mě, že zde poskytnu jiné řešení.
Stručně řečeno, pomocí DENSE_RANK()
, s PARTITION BY
seskupené sloupce a ORDER BY
oba ASC
a DESC
na sloupcích, které se mají počítat:
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName ASC) +
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName DESC) - 1 AS drugCountsInFamilies
Používám to jako šablonu pro sebe.
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields ASC ) +
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields DESC) - 1 AS DistinctCount
Doufám, že to pomůže!