J'ai une table
create table us
(
a number
);
Maintenant, j'ai des données comme :
a
1
2
3
4
null
null
null
8
9
Maintenant, j'ai besoin d'une seule requête pour compter les nullités. y valeurs non nulles dans la colonne a
J'ai une table
create table us
(
a number
);
Maintenant, j'ai des données comme :
a
1
2
3
4
null
null
null
8
9
Maintenant, j'ai besoin d'une seule requête pour compter les nullités. y valeurs non nulles dans la colonne a
Si j'ai bien compris, vous voulez compter tous les NULL et tous les NOT NULL dans une colonne...
Si c'est correct :
SELECT count(*) FROM us WHERE a IS NULL
UNION ALL
SELECT count(*) FROM us WHERE a IS NOT NULL
Modifié pour avoir la requête complète, après avoir lu les commentaires :]
SELECT COUNT(*), 'null_tally' AS narrative
FROM us
WHERE a IS NULL
UNION
SELECT COUNT(*), 'not_null_tally' AS narrative
FROM us
WHERE a IS NOT NULL;
Pour les non-nuls
select count(a)
from us
pour les nuls
select count(*)
from us
minus
select count(a)
from us
Par conséquent,
SELECT COUNT(A) NOT_NULLS
FROM US
UNION
SELECT COUNT(*) - COUNT(A) NULLS
FROM US
devrait faire l'affaire
C'est mieux dans la mesure où les titres des colonnes sont corrects.
SELECT COUNT(A) NOT_NULL, COUNT(*) - COUNT(A) NULLS
FROM US
Lors de certains tests sur mon système, cela coûte un balayage complet de la table.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.