J'essaye d'accomplir ce qui suit dans MySQL (voir le pseudo
code)
SELECT DISTINCT gid
FROM `gd`
WHERE COUNT(*) > 10
ORDER BY lastupdated DESC
Existe-t-il un moyen de le faire sans utiliser un (SELECT ...) dans la clause WHERE, car cela semblerait être un gaspillage de ressources.
mysql
count
aggregation
having
shgnInc
la source
la source
AND ((stock = 1 OR quantity > 0) OR (COUNT(v.id) > 0)
HAVING variations > 0 OR (stock = 1 OR quantity > 0)
Je ne suis pas sûr de ce que vous essayez de faire ... peut-être quelque chose comme
la source
num
. +1 de toute façon pour la syntaxe propre (pourrait être ma configuration, ou ms ... ahh bien).EDIT (si vous voulez juste les gids):
la source
essayer
la source
Juste une version académique sans clause:
la source
Il ne peut pas y avoir de fonctions d'agrégation (par exemple, COUNT, MAX, etc.) dans la clause A WHERE. Par conséquent, nous utilisons la clause HAVING à la place. Par conséquent, toute la requête serait similaire à ceci:
la source
- recherche de stations météorologiques avec des enregistrements demi-horaires manquants
- variation de yapiskan avec un where .. in .. select
la source
je pense que vous ne pouvez pas ajouter
count()
avecwhere
. maintenant, voyez pourquoi ...where
n'est pas la même chose quehaving
,having
signifie que vous travaillez ou traitez avec un groupe et le même travail de comptage, cela concerne également l'ensemble du groupe,maintenant comment compter ça fonctionne comme un groupe entier
créez une table et entrez des identifiants, puis utilisez:
vous trouverez le total des valeurs signifie qu'il indique un groupe! ainsi
where
fait ajouté aveccount()
;la source
la source