Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

come aggregare i valori da un pivot?

Sembra che il modo più veloce per fare quello che vuoi sia cambiare il tuo counted2 CTE, quindi la colonna TimesTested tieni conto della tua logica Quindi dovrebbe essere:

counted2 as (
  SELECT
    client_id,
    CASE WHEN TimesTested >= 12 THEN 12 ELSE TimesTested END TimesTested,
    CAST(COUNT(*) AS varchar(30)) AS count,
    CAST(AVG(testfreq) as varchar(30)) as TestFreq,
    CAST(STDEV(TestFreq) as varchar(30)) Stdv
  FROM counted
  GROUP BY
    client_id,
    CASE WHEN TimesTested >= 12 THEN 12 ELSE TimesTested END
    )