sql >> Base de Datos >  >> RDS >> Oracle

Tengo que escribir una consulta muy interesante que calcula valores nulos y filas con valores.

Adaptado de Oracle:Cómo contar filas nulas y no 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) solo cuenta NOT NULL valores. Agregar esos para las seis columnas es igual a ValuesCount, por supuesto.
COUNT(*) cuenta todas las filas, incluso si todas las columnas dentro de una fila fueran NULL . Multiplique por 6 el número total de celdas y luego reste todo NOT NULL valores para obtener el NULL contar.