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中执行此操作?我可以得到平均值和计数但我无法得到我想要的东西:(
非常感谢任何帮助。感谢。
答案 0 :(得分: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的情况下正常计算它们,然后在应用程序中进行多列格式化。