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

Tjek for ændringer i alle andre kolonner baseret på ligheder i én kolonne

De data, du grundlæggende ønsker, er antallet af enheder, der har mere end én værdi i en kolonne.

Dette beregnes nemmest på kolonnebasis:

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;

Du kan formatere resultaterne, som du vil.




  1. Pivot ved hjælp af SQL Server 2000

  2. SQL-forespørgsel for at få den første dato, afhængigt af den aktuelle gruppe (~kontrolpause)

  3. Parsing af stor XML-fil med PL/SQL

  4. Kan ikke sende strengværdi 1,2 som input til en orakelforespørgsel