209 votes

MySQL - Utilisation de COUNT(*) dans la clause WHERE

J'essaie d'accomplir ce qui suit dans MySQL (cf. pseudo code)

SELECT DISTINCT gid
FROM `gd`
WHERE COUNT(*) > 10
ORDER BY lastupdated DESC

Existe-t-il un moyen de faire cela sans utiliser un (SELECT...) dans la clause WHERE, car cela semble être un gaspillage de ressources.

Toute aide est appréciée.

Gracias.

6voto

zzapper Points 610

-- recherche de stations météorologiques dont les relevés semi-horaires sont manquants

SELECT stationid
FROM weather_data 
WHERE  `Timestamp` LIKE '2011-11-15 %'  AND 
stationid IN (SELECT `ID` FROM `weather_stations`)
GROUP BY stationid 
HAVING COUNT(*) != 48;

-- variation de yapiskan avec un où dans select.

0voto

Tushar Pandey Points 11

Je pense que vous ne pouvez pas ajouter count() avec where . maintenant je vois pourquoi ....

where n'est pas identique à having , having signifie que vous travaillez ou traitez avec un groupe et que le même travail de comptage, c'est aussi traiter avec l'ensemble du groupe,

maintenant comment le compte est de travailler comme un groupe entier

créer une table et entrer des identifiants, puis utiliser :

select count(*) from table_name

vous trouverez les valeurs totales signifie qu'il indique un certain groupe ! donc where fait ajouté avec count() ;

Prograide.com

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.

Powered by:

X