Oracle
 sql >> Base de données >  >> RDS >> Oracle

Je dois écrire une requête très intéressante qui calcule des valeurs nulles et des lignes avec des valeurs

Adapté de Oracle :Comment compter lignes nulles et non nulles :

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) ne compte que NOT NULL valeurs. L'ajout de ceux pour les six colonnes équivaut à ValuesCount, bien sûr.
COUNT(*) compte toutes les lignes, même si toutes les colonnes d'une ligne étaient NULL . Multipliez par 6 pour le nombre total de cellules, puis soustrayez tous les NOT NULL valeurs pour obtenir le NULL compter.