2011-05-16 4 views
2

안녕 얘들 아, 내가 좀 도와 줘야 해. 나는 약 100k 레코드가있는 테이블을 가지고있다. 각 행은 ID로 참조됩니다. 여기에 내가보고 싶은 것은 많은 (단일 번호) 키워드는 사용자 페이지의 1, 2 또는 3에 표시되는 방식입니다 예를 들어수와 평균 MySQL의 레코드 수

Keyword  | Domain   | Page | UserID 
Hello  | www.example.com | 1 | 994 
World  | www.example.com | 1 | 994 
Genius  | www.example.com | 1 | 994 
Example map | www.example.com | 2 | 994 
Hello  | www.example.com | 1 | 994 
demo0  | www.test.com | 1 | 994 
demo1  | www.test.com | 2 | 994 
demo2  | www.test.com | 2 | 994 
demo3  | www.test.com | 3 | 994 
wonderful | www.mysql.com | 1 | 997 
wonder  | www.mysql.com | 1 | 997 
SOFLOW  | www.mysql.com | 1 | 997 

입니다. 여기

는 예를 들어, 출력 : 내가 PHP에서이 작업을 수행 할 수 있습니다 알고

User | Domain   | Total KW | #Page 1 | #Page 2 | # Page3 
994 | www.example.com |  5 |  3 |  1 |  0 
994 | www.test.com |  4 |  1 |  2 |  1 

하지만, MySQL의에서이 작업을 수행 할 수있는 방법은 무엇입니까? 나는 평균 카운트를 얻을 수 있습니다하지만 난 어떤 도움이 많이 감사합니다 :(

을 원하는 것을 얻을 캔트. 감사합니다.

답변

4
SELECT User, Domain, COUNT(Page), 
    SUM(IF(Page=1, 1, 0)) AS Page1, 
    SUM(IF(Page=2, 1, 0)) AS Page2, 
    SUM(If(Page=3, 1, 0)) AS Page3 
FROM table 
GROUP BY User, Domain 

이것은 단지이 3 "페이지"를보다가 있다면 지루한 얻을 것 그 시점에서 페이지를 그룹화하고 SUM 항목없이 정상적으로 계산 한 다음 응용 프로그램에서 다중 열 서식을 수행해야합니다.

+0

감사합니다. 정말 고마워요. –