테스트 사이트 - 개발 중인 베타 버전입니다

mysql group by 카운트 질문드립니다. 채택완료

예서제이 3년 전 조회 3,086

    

    $sql = "select * from {$write_table}</p>

<p>              where main = '과일' and sub = '사과'</p>

<p>              group by size";

    $result = sql_query($sql, true);

    while ($row = sql_fetch_array($result)) {

        $list[] = $row;    

    }</p>

<p>$cnt = count($list);

echo $cnt;</p>

<p>

main이 과일, sub가 사과 일때는 size가 대, 중, 소 로 나와서 그룹을 size로 묶으면 cnt가 3개가 나옵니다.

그런데 main이 과일, sub가 바나나 일때는 사이즈가 아예 없어서 cnt가 0이 나올줄 알았는데 1이 나오네요..

그룹으로 묶는 size의 값이 없을때 1이 아닌 0이 나오게 할려면 어떻게 수정해야 하나요?

 

쉽게

사과는 size가 대, 중, 소 가 있는데 (3개)

바나나는 size 자체가 없습니다.  (0개)

 

 

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

답변 4개

3년 전

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

</p>

<p>... GROUP BY size HAVING size IS NOT NULL</p>

<p>

로그인 후 평가할 수 있습니다

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

n
3년 전

추가 피해자 방지 https://sir.kr/conflictconsultation/245" rel="nofollow noreferrer noopener" target="_blank">https://sir.kr/conflictconsultation/245

로그인 후 평가할 수 있습니다

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

유찬아빠

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

예서제이
3년 전
바나나 일때도 동일한 조건문입니다
where main = '과일' and sub = '바나나'

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

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

로그인