답변:
이 시도;
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)
당신이하려는 일이 확실하지 않습니다 ... 아마도
SELECT gid, COUNT(*) AS num FROM gd GROUP BY gid HAVING num > 10 ORDER BY lastupdated DESC
num
. 깨끗 한 구문에 대 한 어쨌든 +1 (내 설정 또는 ms ... 아 잘 될 수 있음).
SELECT COUNT(*)
FROM `gd`
GROUP BY gid
HAVING COUNT(gid) > 10
ORDER BY lastupdated DESC;
편집 (만약 당신이 원하는 경우) :
SELECT MIN(gid)
FROM `gd`
GROUP BY gid
HAVING COUNT(gid) > 10
ORDER BY lastupdated DESC
조항이없는 학술 용 버전 :
select *
from (
select gid, count(*) as tmpcount from gd group by gid
) as tmp
where tmpcount > 10;
난 당신이 추가 할 수 없습니다 생각 count()
과 함께 where
. 이제 이유를 보자 ....
where
와 같지 않다는 것은 having
, having
당신이 그룹이나 같은 수의 일을 처리하거나 처리한다는 의미이며, 또한 전체 그룹을 다루고 있습니다.
이제 전체 그룹으로 작동하는 방법을 세어보세요.
테이블을 만들고 일부 ID를 입력 한 후 다음을 사용하십시오.
select count(*) from table_name
당신은 총 값을 찾을 것입니다 그것은 어떤 그룹을 나타내는 것을 의미합니다! 그래서 where
함께 추가 않습니다 count()
;
COUNT (*)는 HAVING과 함께 만 사용할 수 있으며 GROUP BY 문 뒤에 사용해야합니다. 다음 예를 참조하십시오.
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