Lorsque nous exécutons sélectionnez count(*) from table_name
il retourne le nombre de lignes.
Qu'est - count(1)
faire? Qu'est - 1
signifie ici? Est-ce la même chose que count(*)
, car il donne le même résultat sur l'exécution?
Lorsque nous exécutons sélectionnez count(*) from table_name
il retourne le nombre de lignes.
Qu'est - count(1)
faire? Qu'est - 1
signifie ici? Est-ce la même chose que count(*)
, car il donne le même résultat sur l'exécution?
Le paramètre de la fonction de COMPTAGE est une expression qui est évaluée pour chaque ligne. La fonction COUNT retourne le nombre de lignes pour lesquelles l'expression renvoie une valeur non nulle. ( * est une expression particulière qui n'est pas évalué, il renvoie le nombre de lignes.)
Il y a deux autres modificateurs pour l'expression: TOUS et DISTINCTS. Ces de déterminer si les doublons sont éliminés. Puisque TOUT est la valeur par défaut, votre exemple est le même que le comte(1), ce qui signifie que les doubles sont conservés.
Car l'expression "1" prend la valeur non-null pour chaque ligne, et puisque vous n'êtes pas en supprimant les doublons, COUNT(1) doit toujours retourner le même nombre que COUNT(*).
Voici un lien qui permettra de répondre à vos questions. En bref:
count(*) est la façon correcte d'écrire et count(1) est OPTIMISÉ POUR ÊTRE count(*) en interne-depuis
a) compter les lignes où 1 n'est pas nul est moins efficace que
b) compter les lignes
Il n'y a pas de différence.
COUNT(1)
est fondamentalement juste le comptage d'une valeur constante 1 colonne pour chaque ligne. Comme d'autres ici l'ont dit, c'est la même chose que COUNT(0)
ou COUNT(42)
. Tout non-NULL
de la valeur suffira.
http://asktom.oracle.com/pls/asktom/f?p=100:11:2603224624843292::::P11_QUESTION_ID:1156151916789
L'optimiseur Oracle n'a apparemment utiliser pour avoir des bugs, ce qui a causé le comte d'être touchés par la colonne qui vous avez choisi et que l'on était dans un index, de sorte que le NOMBRE(1) de la convention est entrée en être.
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.