Посчитайте и Avg количество записей в MySQL - PullRequest
2 голосов
/ 16 мая 2011

Эй, ребята, мне нужна помощь с этим.У меня есть таблица с около 100 тысяч записей.На каждую строку ссылается идентификатор.Вот пример

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?Я могу получить среднее значение и количество, но не могу получить то, что хочу: (

Любая помощь очень ценится. Спасибо.

1 Ответ

4 голосов
/ 16 мая 2011
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, а затем выполнить многоколоночное форматирование в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...