2011-01-26 3 views
2

나는 쿼리를 실행하기 위해 노력하고있어 다음수를 사용하여 난 단지 내가 출력을 얻을 수 있습니다 다시

User Item 
A  1 
A  1 
A  1 
B  1 
B  2 
C  2 
C  2 
A  2 

같은 테이블이 하나 개의 행을 받고 있어요 같은

User Item Count 
A  1  3 
B  1  1 
B  2  1 
A  2  1 
C  2  2 

나는 다음과 같은 쿼리를 시도했지만, 나는 출력을 올바르게 얻지 못하고있다.

select f.item,f.uid, COUNT(f.uid) as count 
    from fresh f, 
     product p 
    where f.locationid = p.iid 
group by f.locationid, f.uid 
order by f.uid desc; 

필자는 필요한 출력을 얻기 위해 쿼리를 작성하는 방법을 지적 할 수 있습니까? 파이썬/루비로 작성할 수는 있지만 실행하는데 더 오래 걸릴 것이라고 생각합니다! 이 결과에서 사용하지 않는 경우 :(

+1

및 f.uid 만 f.uid에 의해 그룹화하는 경우 , 당신은 당신이 원하는 결과를 얻을 수 있습니다. – thehiatus

답변

3
Select user, Item, count(*) Count From tablename 
Group by User, Item 
Order by Item 
+0

+1 유일한 대답 th @ by steve의 원래 쿼리에서 유일한 문제 인 것 같습니다. –

+0

... 명확성을 위해 대부분의 프로그래머는 항목, uid를 무작위를 싫어하는 프로그래머에게있는 것으로 주문합니다. –

1

왜, 제품 테이블에 합류? '가 외설 때, 내부 조인이기 때문에, 문제의 원인입니다

? 데이터를 잃게됩니다, 그래서 어떤 결과가 없을 것, 일치를 T, 다만 시도 : 당신이 f.locationid에 의해 그룹화하는 이유는

select 
    item, 
    uid, 
    COUNT(*) as count 
from 
    fresh 
group by 
    locationid, 
    uid 
order by 
    uid desc 
; 
+0

나는 특정 가게에서 유효한 제품인지 확인하려고 노력하고 있습니다. iid가 거기에 없다면 나는 결과 세트에 그것을 원하지 않는다. 말이 돼? – Steve

+0

음, 외래 키를 통해 들어가는 길에 유효성을 확인 했어야합니다. –

3
SELECT user, item, count(*) FROM fresh GROUP BY user, item 
관련 문제