2011-05-16 38 views
2

嗨,大家好,我需要一些幫助。我有一張約有10萬條記錄的表格。每行都由一個ID引用。下面是一個例子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 

我想看到的是許多人(單數)的關鍵字是如何出現在1,2或3的用戶。

下面是一個例子輸出:

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 

我知道我可以在PHP中做到這一點,但有什麼辦法在MySQL做到這一點?我可以得到AVG和計數,但我不能得到我想要的東西:(

任何幫助非常感謝,謝謝。

回答

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 

這會得到,如果有不只是這三個「頁面」比較繁瑣在這一點上,你應該只在頁面上進行分組,並且在不使用SUM的情況下對它們進行計數,然後在你的應用程序中進行多列格式化。

+0

這很美麗,非常感謝。 – 2011-05-16 15:00:58