Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Suchen Sie nach Änderungen in allen anderen Spalten, basierend auf Ähnlichkeiten in einer Spalte

Die Daten, die Sie im Grunde möchten, sind die Anzahl der Entitäten, die mehr als einen Wert in einer Spalte haben.

Dies wird am einfachsten auf Spaltenbasis berechnet:

select sum(case when NumFirstNames <> 1 then 1 else 0 end) as DifferentFirstNames,
       sum(case when NumLastNames <> 1 then 1 else 0 end) as DifferentLastNames,
       sum(case when NumSSN <> 1 then 1 else 0 end) as DifferentSSN,
       sum(case when NumPhone <> 1 then 1 else 0 end) as DifferentPhone       
from (select EncounterId, count(*) as Num,
             count(distinct FirstName) as NumFirstNames,
             count(distinct LastName) as NumLastNames,
             count(distinct SSN) as NumSSN,
             count(distinct Phone) as NumPhone
      from table t
      group by EncounterId
     ) e;

Sie können die Ergebnisse beliebig formatieren.