2014-10-05 3 views
0

에 나는이방법 그룹과 계산은 PostgreSQL을

date  | text | link_id 
------------+-------+---------- 
05-10-2014 | lorem | 2 
06-10-2014 | lorem | 4 
05-10-2014 | lorem | 4 
05-10-2014 | lorem | 5 
05-10-2014 | lorem | 5 
05-10-2014 | lorem | 5 
05-10-2014 | lorem | 5 
05-10-2014 | lorem | 5 
05-10-2014 | lorem | 6 
05-10-2014 | lorem | 4 

같은 테이블 내가 결과

date | text | link_id | value 
------------+-------+----------+------- 
05-10-2014 | lorem | 2  | 1 
06-10-2014 | lorem | 4  | 3 
05-10-2014 | lorem | 5  | 6 

왜 내가 기능을 사용하는 경우 여기 내 행에서 그룹의 수를 얻을 필요가있다

COUNT(DISTINCT n) 

또는 유일한

COUNT() 

항상 GROUP

모든 SELECT 문을 추가하는 저를 강제로 내가 1 개 행을 별개의이야

답변

0

시도 :

Select link_id, Count (link_id) 
From table 
Group by link_id; 

것은 당신의 이름으로 테이블을 교체해야합니다 당신의 표.

집계 함수는 그룹의 모든 행에 적용됩니다. 먼저 link_id로 그룹화하고 동일한 link_id를 갖는 행 그룹을 가져옵니다. Count는 각 그룹에 적용되어 각 그룹의 행 수를 계산합니다. 결과적으로 동일한 link_id를 가진 행 수인 link_id & &을 얻을 수 있습니다.

두 개의 다른 열의 데이터를 실제로 선택하는 방법에 대한 질문은 실제로 명확하지 않습니다. 위의 예에서 fot link_id 4를 지정하면 count 2를 얻지 만 link_id가 4 인 두 레코드의 날짜는 다릅니다 (하나는 5.10.2014이고 다른 하나는 6.10.2014 임). 결과 중 어느 것을 취해야합니까?