mysql group by 카운트 질문드립니다.
본문
$sql = "select * from {$write_table}
where main = '과일' and sub = '사과'
group by size";
$result = sql_query($sql, true);
while ($row = sql_fetch_array($result)) {
$list[] = $row;
}
$cnt = count($list);
echo $cnt;
main이 과일, sub가 사과 일때는 size가 대, 중, 소 로 나와서 그룹을 size로 묶으면 cnt가 3개가 나옵니다.
그런데 main이 과일, sub가 바나나 일때는 사이즈가 아예 없어서 cnt가 0이 나올줄 알았는데 1이 나오네요..
그룹으로 묶는 size의 값이 없을때 1이 아닌 0이 나오게 할려면 어떻게 수정해야 하나요?
쉽게
사과는 size가 대, 중, 소 가 있는데 (3개)
바나나는 size 자체가 없습니다. (0개)
!-->
답변 4
바나나 일때는 사이즈가 아예 없어서 cnt가 0이 나올줄 알았는데
==> 이 때 조건문(where)는 어떻게 하셨나요?
조건의 카운트를 하는게 아니라 바나나인 레코드를 가져와서 카운트를 하면 당연히 1이 되겠지요...
size 자체가 없다는 의미가 size 컬럼 데이터가 NULL 이라는 뜻이라면
... GROUP BY size HAVING size IS NOT NULL
답변을 작성하시기 전에 로그인 해주세요.