2012-07-27 3 views
2

특정 열과 동일한 값을 가진 테이블의 행 수를 가져 오는 SQL을 작성하려고합니다. 이 경우 테이블에는 'title'이라는 열이 있습니다. 반환 할 각 행에 대해 행의 다른 열 값과 함께 해당 행의 'title'값과 동일한 값을 갖는 행 수를 얻고 싶습니다. 현재로서는 내가 가지고있는 최고가 있습니다 : 이름, 성, 도시, 주, 직위 선택 (myTable에서 선택 개수 : 제목 = 제목);subselect를 통해 수를 얻는 방법

분명히,이 모든 것은 내 subselect에있는 테이블의 행 수입니다. 제목 오른쪽에 = 열의 제목 값을 참조하려면 어떻게합니까?

도움을 주셔서 감사합니다.

답변

2

이것은 "상관 부속 조회"라고합니다.

select firstname, lastname, title, 
       (select count(1) from table where title=a.title) title_count 
from table a; 
+0

환상적인! 고마워, 스리 니. 더 많은 포인트를 추가 할 수있는 방법이 있으면 알려주십시오. 이것은 크게 도움이되었습니다! – charlest

1

이 테스트되지 않은,하지만 난 당신이

WITH titles AS (
    SELECT 
     Title 
     , COUNT(*) AS Occurences 
    FROM myTable 
    GROUP BY Title 
) 
SELECT 
    t1.FirstName 
    , t1.LastName 
    , t1.City 
    , t1.state 
    , t1.title 
    , titles.Occurences 
FROM myTable AS t1 
INNER JOIN titles ON t1.Title = titles.Title 
+0

이것은 Srini의 솔루션과 동일한 일반적인 패턴을 사용하는 것처럼 보입니다. 그러나 나는 확실하지 않습니다. 나는 그것을 시험해야 할 것입니다. 대답 할 시간을내어 주셔서 감사합니다! – charlest

1

대부분의 데이터베이스 창/분석 기능을 지원 뭘 하려는지가 작동해야한다고 생각 : 그것은 다음과 같이 간다. 이 중 하나 (예 : SQL Server, Oracle, Postgres)를 사용하는 경우 다음과 같이 할 수 있습니다.

select t.firstname, t.lastname, t.title, t.city, t.state, 
     count(*) over (partition by title) as numwithtitle 
from t 
+0

고든, 고맙습니다.하지만 DB 엔진 중 하나를 사용하고 있지 않습니다. – charlest

+0

@charlest. . . 질문 할 때 사용중인 데이터베이스를 포함시켜야합니다. –

+0

우수한 포인트. 나는 sqlite를 사용하고있다. 나는 다음 번에 그것을 추가하는 것을 기억할 것입니다. 답변 할 시간을내어 주셔서 감사합니다. – charlest

관련 문제