미채택 완료

mysql group by 카운트 질문드립니다.

Copy
$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개 / 댓글 2개

size 자체가 없다는 의미가 size 컬럼 데이터가 NULL 이라는 뜻이라면

Copy
... GROUP BY size HAVING size IS NOT NULL

조건의 카운트를 하는게 아니라 바나나인 레코드를 가져와서 카운트를 하면 당연히 1이 되겠지요...

답변에 대한 댓글 1개

group by size 로 묶었을때 size값이 없다면 cnt가 0이 나오게 하는 방법은 없는걸까요?

바나나 일때는 사이즈가 아예 없어서 cnt가 0이 나올줄 알았는데 

==> 이 때 조건문(where)는 어떻게 하셨나요?

답변에 대한 댓글 1개

바나나 일때도 동일한 조건문입니다
where main = '과일' and sub = '바나나'

답변을 작성하려면 로그인이 필요합니다.

🐛 버그신고