Respuestas:
prueba esto;
select gid
from `gd`
group by gid
having count(*) > 10
order by lastupdated desc
AND ((stock = 1 OR quantity > 0) OR (COUNT(v.id) > 0)
HAVING variations > 0 OR (stock = 1 OR quantity > 0)
No estoy seguro de lo que estás tratando de hacer ... tal vez algo como
SELECT gid, COUNT(*) AS num FROM gd GROUP BY gid HAVING num > 10 ORDER BY lastupdated DESC
num. +1 de todos modos para la sintaxis limpia (podría ser mi configuración, o ms ... ahh bien).
SELECT COUNT(*)
FROM `gd`
GROUP BY gid
HAVING COUNT(gid) > 10
ORDER BY lastupdated DESC;
EDITAR (si solo quieres los gids):
SELECT MIN(gid)
FROM `gd`
GROUP BY gid
HAVING COUNT(gid) > 10
ORDER BY lastupdated DESC
Solo versión académica sin tener cláusula:
select *
from (
select gid, count(*) as tmpcount from gd group by gid
) as tmp
where tmpcount > 10;
No puede haber funciones agregadas (Ej. COUNT, MAX, etc.) en la cláusula A WHERE. Por lo tanto, usamos la cláusula HAVING en su lugar. Por lo tanto, toda la consulta sería similar a esto:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;
- buscando estaciones meteorológicas con registros faltantes cada media hora
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;
- variación de yapiskan con un donde .. en .. seleccione
Creo que no se puede agregar count()con where. ahora ve por qué ...
whereno es igual que having,having significa que está trabajando o tratando con el grupo y el mismo trabajo de conteo, también está tratando con todo el grupo,
ahora cómo cuenta está funcionando como grupo completo
crea una tabla e ingresa algunas identificaciones y luego usa:
select count(*) from table_name
¡encontrará los valores totales significa que está indicando algún grupo! también wherelo agrega con count();
COUNT (*) solo se puede usar con HAVING y se debe usar después de la instrucción GROUP BY. Busque el siguiente ejemplo:
SELECT COUNT(*), M_Director.PID FROM Movie
INNER JOIN M_Director ON Movie.MID = M_Director.MID
GROUP BY M_Director.PID
HAVING COUNT(*) > 10
ORDER BY COUNT(*) ASC