Risposte:
prova questo;
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)
Non sono sicuro di quello che stai cercando di fare ... forse qualcosa del genere
SELECT gid, COUNT(*) AS num FROM gd GROUP BY gid HAVING num > 10 ORDER BY lastupdated DESC
num
. +1 comunque per la sintassi pulita (potrebbe essere la mia configurazione, o ms ... ahh bene).
SELECT COUNT(*)
FROM `gd`
GROUP BY gid
HAVING COUNT(gid) > 10
ORDER BY lastupdated DESC;
EDIT (se vuoi solo le gids):
SELECT MIN(gid)
FROM `gd`
GROUP BY gid
HAVING COUNT(gid) > 10
ORDER BY lastupdated DESC
Solo versione accademica senza clausola:
select *
from (
select gid, count(*) as tmpcount from gd group by gid
) as tmp
where tmpcount > 10;
Non ci possono essere funzioni aggregate (es. COUNT, MAX, ecc.) Nella clausola A WHERE. Quindi usiamo invece la clausola HAVING. Pertanto l'intera query sarebbe simile a questa:
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;
- ricerca di stazioni meteorologiche con record mezz'ora mancanti
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;
- variazione di yapiskan con un dove .. in .. seleziona
Penso che non è possibile aggiungere count()
con where
. ora vedi perché ....
where
non è la stessa cosa having
, having
significa che stai lavorando o hai a che fare con un gruppo e con lo stesso lavoro di conteggio, ma anche con l'intero gruppo,
ora come conta funziona come tutto il gruppo
crea una tabella e inserisci alcuni ID e poi usa:
select count(*) from table_name
troverai i valori totali significa che sta indicando un gruppo! così where
viene aggiunto con count()
;
COUNT (*) può essere utilizzato solo con HAVING e deve essere utilizzato dopo l'istruzione GROUP BY. Ecco l'esempio seguente:
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