0
votes

Compter () Spécifier une valeur indénitienne?

Utilisation de Microsoft SQL Server, si vous utilisez le compte de compte (nom de colonne), il renvoie le nombre de lignes dans cette colonne qui ont une valeur non nulle (c'est-à-dire qu'elle compte les lignes, ignorant les nulls).

Y a-t-il un moyen de faire quelque chose de similaire, mais vous permettant de le dire quelles valeurs ignorent? Par exemple, si je voulais compter toutes les lignes d'une table qui ont une valeur qui n'est pas 1, je pouvais faire quelque chose comme ComptNot (nom de colonne, 1). Cela compterait toutes les lignes de la colonne spécifiée qui ont une valeur non 1.


0 commentaires

3 Réponses :


4
votes

Vous pouvez utiliser l'agrégation conditionnelle:

SELECT COUNT(CASE WHEN some_val <> 1 THEN 1 END) AS cnt
FROM yourTable;


0 commentaires

0
votes

Pourquoi ne pas mettre ce que vous voulez exclure dans un clause? XXX


2 commentaires

. . . Cela est également correct, mais éliminera l'ensemble des résultats, qui pourrait ne pas vouloir.


Je suis juste en réponse à la question comme indiqué.



0
votes

Vous devez faire attention à null code> valeurs. Je recommanderais:

select sum(case when column not in (<values to ignore>) then 1 else 0 end)


0 commentaires