Pourquoi utiliseriez-vous count ('foo')?

J'ai examiné la différence entre:

count(*) count(column_name) count(1) 

Par exemple: ici: Count (*) vs Count (1) . Certains répondeurs indiquent également: count ('foo'). Pourquoi utiliseriez-vous count ('foo'). Il semble que cela fonctionne:

 select count('hello my name is joe bloggs and I finished school about ten years ago') from dbdisposals 

Pourquoi passeriez-vous jamais une string à la fonction de count?

L'utilisation de n'importe quelle valeur littérale dans le count a le même effet que count(*) , elle count le nombre de lignes dans le groupe. Utiliser count('str') a le même effet que count(1) , c'est-à-dire qu'il count les loggings où la valeur n'est pas null . Comme la valeur littérale ( 'str' ou 1 ) ne sera null pour aucun des loggings, elle count tous les loggings.

La fonction count count toutes les valeurs non nulles, de sorte qu'une valeur littérale dans count a le même effet que count(*) , mais count(column_name) count uniquement les valeurs non nulles dans cette colonne.

L'utilisation d'une string littérale en count fonctionne correctement, la seule raison pour laquelle vous l'éviteriez serait que cela pourrait être source de confusion.