sql >> Database >  >> RDS >> Oracle

Ik moet een zeer interessante query schrijven die null-waarden en rijen met waarden berekent

Aangepast van Oracle:Hoe te tellen null- en niet-null-rijen :

SELECT
  COUNT(Col1)+COUNT(Col2)+COUNT(Col3)+
  COUNT(Col4)+COUNT(Col5)+COUNT(Col6) AS ValuesCount,

  6*COUNT(*)-COUNT(Col1)-COUNT(Col2)-COUNT(Col3)-
  COUNT(Col4)-COUNT(Col5)-COUNT(Col6) AS NullCount
FROM data
GROUP BY id

COUNT(ColX) telt alleen NOT NULL waarden. Het toevoegen van die voor alle zes kolommen is natuurlijk gelijk aan ValuesCount.
COUNT(*) telt alle rijen, zelfs als alle kolommen binnen één rij NULL waren . Vermenigvuldig met 6 voor het totale aantal cellen en trek dan alles af NOT NULL waarden om de NULL . te krijgen tellen.



  1. Dynamische tabelnaam voor SQL-query in FOR

  2. Meerdere keren dezelfde kolom gebruiken in de WHERE-component

  3. Wanneer een nieuwe rij in de database wordt toegevoegd, moet een extern opdrachtregelprogramma worden aangeroepen

  4. Sql Server Service Broker-gespreksgroepen