Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Eu tenho que escrever uma consulta muito interessante que calcula valores nulos e linhas com valores


Adaptado de Oracle:Como contar linhas nulas e não nulas :
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 apenas NOT NULL valores. Adicioná-los para todas as seis colunas é igual a ValuesCount, é claro.
COUNT(*) conta todas as linhas, mesmo que todas as colunas dentro de uma linha sejam NULL . Multiplique por 6 para o número total de células e, em seguida, subtraia todos os NOT NULL valores para obter o NULL contar.