sql >> Databáze >  >> RDS >> Sqlserver

Funkce okna pro počítání různých záznamů

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!



  1. Chyba serveru SQL:ExecuteNonQuery:Vlastnost připojení nebyla inicializována

  2. Aktualizace MySQL, přeskočte prázdná pole s PDO

  3. PROVEĎTE OKAMŽITĚ v plsql

  4. nahrát více souborů na server a zapisovat do databáze