sql >> Databasteknik >  >> RDS >> Oracle

Jag måste skriva en mycket intressant fråga som beräknar nollvärden och rader med värden

Anpassad från Oracle:How to count null- och icke-nullrader :

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) räknas bara NOT NULL värden. Att lägga till dessa för alla sex kolumner är naturligtvis lika med ValuesCount.
COUNT(*) räknar alla rader, även om alla kolumner inom en rad var NULL . Multiplicera med 6 för det totala antalet celler och subtrahera sedan alla NOT NULL värden för att få NULL räkna.



  1. Välj Flera rader i en kolumn separerade av Ny rad

  2. Oracle SQL Slå samman flera rader med samma ID men ur funktion

  3. Hur uppdaterar man alla materialiserade vyer i Postgresql 9.3 på en gång?

  4. Hur får man de mest populära taggarna från normaliserade tabeller?