저는 Postgres를 처음 접했지만 관계형 데이터베이스는 아니며 오늘 밤 이상한 결과가 나오는 쿼리를 작성했습니다. 누군가가 카운트와 관련된 일을 설명하도록 도울 수 있습니까? (결과는 좋다 - 400000 개 레코드를 반환) 두 화합물 기본 키 컬럼에Postgres의 이상한 그룹 문제
select * from mytable;
두 번째 쿼리 그룹 :
첫 번째 쿼리는 400,000 결과 (행)을 제공
select PK1, PK2, count(*) cnt
from mytable
group by PK1, PK2
을 세 번째 쿼리는 140 만 건이 넘는 레코드를 잘못 제공합니다.
select PK1, PK2
from mytable
group by PK1, PK2
유일한 차이점은 b입니다. 두 번째와 세 번째 쿼리 사이에 개수 (*) 필드가 제거됩니다. 출력이 별개의 레코드처럼 보이지 않습니다. 행이 복제됩니다.
왜이 'count'필드를 제거하면 Postgres 쿼리에서 이런 식으로 출력이 왜곡 될 수 있습니다.
이것은 의미가 없습니다. 그것은 매우 의심 스럽습니다. 나는 다른 일이 벌어지고있는 것 같아. –
그래서 추가 행이 무엇인지 확인 했습니까? – zerkms
나는 이것을 재현 할 수 없다. (작은) 데이터 세트를 제공함으로써이 문제를 보여주는 최소한의 예를 제공 할 수 있습니까? 사실, 훨씬 작은 데이터 세트로이 문제를 재현 할 수 있습니까? – Evert