AI가 SQL 열을 셌다면, 전체 기록인가요? NULL이 아닌 값만인가요?
SQLite의 COUNT(*)는 행을, COUNT(value)는 NULL이 아닌 값을 셉니다. 빈 문자열과 0은 서로 다른 경우이며 둘 다 NULL이 아닌 값입니다.
AI에게 채워진 기록을 세라고 하기 전에 ‘채워짐’을 정의하세요. 데이터베이스의 빠진 값·빈 글씨·기록된 0은 자동으로 같은 의미가 되지 않습니다.
기록 네 개로 시험했습니다
메모리 SQLite 표에서 A는 글씨 done, B는 NULL, C는 빈 문자열, D는 숫자 0입니다. COUNT(*)는 4, COUNT(value)는 3을 반환했습니다. 후자는 빈 문자열과 0도 세므로 유용한 답변 세 개라는 결론은 아닙니다.
경우를 나눠 보세요
WHERE value IS NULL로 센 결과는 1이고 빈 문자열을 비교한 별도 결과도 1입니다. WHERE value = NULL은 0으로, 의도한 NULL 검사와 다릅니다. SQLite 3.53.1에서 실행했으며 운영 데이터베이스를 쓴 것은 아닙니다.
집계 정의를 알려 주세요
예시 입력: “전체 기록·NULL·빈 글씨·다른 값을 따로 세고, 합치기 전에 보고서에서 무엇을 빠진 값으로 볼지 설명해. 의미 있는 0은 보존해.” 정답을 아는 작은 표로 생성된 질의를 확인하세요.
값이 있다고 유효한 것은 아닙니다
NULL이 아닌 개수만으로 정확성·허용 여부·작업에 필요한 완성도를 알 수는 없습니다. 공백·특수 코드·잘못된 값은 다른 규칙이 필요할 수 있습니다. 완성된 합계처럼 보이도록 빠진 값을 0으로 바꾸지 마세요.
2026년 10월 14일 발행. 기존 Python의 메모리 SQLite에서 가상 행과 SELECT 결과만 시험했습니다. 실제 자료·다른 SQL 엔진·업무 집계 규칙·AI 코딩 서비스를 시험하지 않았습니다.