2016-08-10 6 views
0

에서 별개의 행 값을 개수 : I합니다 (id 열이 떨어 포함) 테이블에 서로 다른 행을 계산하는 쿼리를 실행하려면SQL : 나는 SQL이 유사한 테이블이 테이블

id |tag | entryID 
---+----+-------- 
1 |foo | 0 
2 |foo | 0 
3 |bar | 3 
5 |bar | 3 
6 |foo | 3 
7 |foo | 3 

. 결과는 다음과 같아야합니다 (이 테이블의 전 환).

(tag=foo, entryID=0) | (tag=foo, entryID=3) | (tag=bar, entryID=3) 
---------------------+----------------------+--------------------- 
2     | 2     | 2 

이 쿼리는 어떻게 표시됩니까?

참고 : 각 열의 값은 미리 알 수 없습니다.

당신이 사용 조건 집계를 할 수
+0

우리가 우리를 시작하도록 보여줄 수있는 무엇이든 시도한 적이 있습니까? 아니면 그 일에 대한 인용문을 요구하고 있습니까? – RiggsFolly

+0

미리 태그 값을 알고 있습니까? 그렇다면 '조건부 집계'를 사용할 수 있습니다. 그렇지 않다면, 당신은'dynamic sql'으로 그 접근법을 결합 할 필요가 있습니다. – sgeddes

+0

비슷한 언어 : http://stackoverflow.com/questions/5737628/mysql-count-distinct –

답변

2

는 다음과 같은 이유로, 행이 훨씬 더 다재다능

select tag, entryId, count(*) 
from t 
group by tag, entryId; 

:

select sum(tag = 'foo' and entryId = 0) as "tag=foo, entryID=0", 
     sum(tag = 'foo' and entryId = 3) as "tag=foo, entryID=3", 
     sum(tag = 'bar' and entryId = 3) as "tag=bar, entryID=0" 
from t; 

그러나, 일반적인 방법은 행이 아닌 컬럼의 수를 넣어하는 것입니다 당신이 원하는 모든 조합을 나열 할 필요는 없습니다.

관련 문제