Oracle
 sql >> Database >  >> RDS >> Oracle

Devo scrivere una query molto interessante che calcola valori nulli e righe con valori

Adattato da Oracle:come contare righe null e non null :

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) conta solo NOT NULL i valori. L'aggiunta di quelli per tutte e sei le colonne equivale ovviamente a ValuesCount.
COUNT(*) conta tutte le righe, anche se tutte le colonne all'interno di una riga erano NULL . Moltiplica per 6 per il numero totale di celle e poi sottrai tutto NOT NULL valori per ottenere il NULL contare.