2012-10-25 4 views
0

구분. 또한 resources의 모든 구성원이 고유해야합니다 (3 행 참조).그룹은 다음과 같이 나는 데이터의 테이블이 목록

GROUP BY 각자 DISTINCT 회원에게 제공되고 싶습니다. 다른 모든 열은 집계됩니다.

의도 된 결과 :

query 
______________________________________________________________________________ 
resources  | companyName  | Response   | Score 
David   | *agregated result* | *agregated result* | *agregated result* 
Matt   | *agregated result* | *agregated result* | *agregated result* 
Kyle   | *agregated result* | *agregated result* | *agregated result* 

편집 :

또 다른 가능성 :

query 
____________________________________________________ 
resources   | companyName | Response | Score 
David    | companyA | YES  | 5 
Matt    | companyA | YES  | 5 
Matt    | compqanyB | NO  | 8 
Kyle    | companyC | YES  | 2 
David    | companyC | YES  | 2 
+1

나는 당신이 순수한 SQL로 이것을 할 수 있다고 생각하지 않지만 모든 프로그래밍 언어 (PHP, java 등)에서 너무 어려워서는 안된다. –

+0

나는 이것을보고 서비스에 사용하고있다. 데이터베이스에 직접 연결하려고합니다. 내가하지 않으면 나는 중간 남자를 사용하지 않을 것입니다. 그러나 그것이 가능하지 않다면, 나는해야한다고 생각합니다. –

+0

SQL에서는 할 수 있지만 커서를 사용해야합니다. 이것은 실제 프로그래밍 언어의 SQL 모방과 더 비슷합니다. 그래서 나는 거기에 가지 않을 것입니다. – amphibient

답변

3

날 당신이 개인 이름으로 자원의 테이블이 있다고 가정하자. 이 경우에는 다음과 같은 쿼리를 원하는 것을 할 수 있습니다

select r.name, <other aggregated results> 
from t1 join 
    Resources r 
    on concat(', ', t1.resources, ', ') like concat(', %', r.name, ', %') 
group by r.name 

당신은 자원의 테이블이없는 경우, 당신은 아마해야한다. 쉼표로 구분 된 목록에 그런 것들을 저장하는 것은 일반적으로 나쁜 생각입니다. 데이터가 정규화되지 않고 맞춤법 오류가 발생하는 경우 특히 바람직하지 않습니다.

+0

불행히도, 나는이 데이터베이스에 붙어있었습니다. 나는 그것을 만들지 않았다. 그리고 저는 자원 이름에 대한 테이블을 가지고 있다고 생각합니다. 내가 이것을 밖으로 시험하게 해주세요. –

+0

환상적입니다. 고맙습니다. –

관련 문제