답변:
이 시도;
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