Un PRO du SQL pour m’expliquer mon erreur?
- 1






Ton premier code renvoie le nombre exact de films qui ont au moins 100 000 votes, où la condition WHERE num_votes >= 100000 filtre les lignes avant de compter, donc le résultat sera le nombre de films qui ont au moins 100 000 votes et ta seconde renvoie le nombre total de films parce qu'elle compte les évaluations de la condition plutôt que de filtrer les lignes
C'est parce que ton COUNT(num_votes >= 100000) va compter toutes les lignes, parce que l'expression num_votes >= 100000 retourne une valeur booléenne pour chaque ligne
Vu que TRUE est traité comme 1 et FALSE comme 0, cette requête compte en fait le nombre de lignes dans la table reviews, car toutes les lignes (y compris celles où num_votes est inférieur à 100 000) seront comptées, mais sous forme de 0 ou 1
Le 27 août 2024 à 22:02:15 :
La première renverra toutes les lignes sans spécifier un nombre défini contrairement à la deuxième qui renverra le nombre de vote supérieur ou égal à 100000
Pourtant, j’ai un nombre plus petit avec la première
Le 27 août 2024 à 22:07:59 :
Ton premier code renvoie le nombre exact de films qui ont au moins 100 000 votes, où la condition WHERE num_votes >= 100000 filtre les lignes avant de compter, donc le résultat sera le nombre de films qui ont au moins 100 000 votes et ta seconde renvoie le nombre total de films parce qu'elle compte les évaluations de la condition plutôt que de filtrer les lignesC'est parce que ton COUNT(num_votes >= 100000) va compter toutes les lignes, parce que l'expression num_votes >= 100000 retourne une valeur booléenne pour chaque ligne
Vu que TRUE est traité comme 1 et FALSE comme 0, cette requête compte en fait le nombre de lignes dans la table reviews, car toutes les lignes (y compris celles où num_votes est inférieur à 100 000) seront comptées, mais sous forme de 0 ou 1
Merci clé tu gères!
Le 27 août 2024 à 22:08:24 AllezPasEnInfo a écrit :
Le 27 août 2024 à 22:02:15 :La première renverra toutes les lignes sans spécifier un nombre défini contrairement à la deuxième qui renverra le nombre de vote supérieur ou égal à 100000
Pourtant, j’ai un nombre plus petit avec la première
C'est une erreur j'ai écris trop vite mais je pense qu'il faut éviter de COUNT(*) pour ne pas surcharger la requête surtout si la base de données est pleine, soyez précis.
- 1
Données du topic
- Auteur
- AllezPasEnInfo
- Date de création
- 27 août 2024 à 21:48:42
- Nb. messages archivés
- 12
- Nb. messages JVC
- 12