Как показать пару столбцов с функцией COUNT () в SQL? - PullRequest
0 голосов
/ 04 ноября 2018

Я работаю с MySQL. У меня есть две таблицы. Сначала с clicks:

CREATE TABLE IF NOT EXISTS clicks(
    id VARCHAR(255),
    link VARCHAR(255),
    clickDate INT
    );

и второй с visits:

CREATE TABLE IF NOT EXISTS visits(
    id VARCHAR(255),
    ip INT,
    browser VARCHAR(255)
    );

Значения id одинаковы для двух таблиц. Моя цель - получить таблицу результатов с такими столбцами:

ip | clicks_quantity | clickDate | browser

На данный момент я могу получить таблицу результатов с ip | clicks_quantity. Мой запрос SQL:

SELECT
    visits.ip,
    count(visits.ip) as clicks_quantity,
FROM
    visits
INNER JOIN
    clicks ON visits.id=clicks.id
WHERE
    clicks.clickDate BETWEEN 1 and 7
GROUP BY
    visits.ip

У меня вопрос - Как получить таблицу с двумя дополнительными столбцами?

ip | clicks_quantity | clickDate | browser

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Ну, вы можете использовать следующий запрос, чтобы получить количество кликов на основе браузера и IP-адреса и даты клика

SELECT visits.ip, clicks.clickDate, visits.browser, count(visits.ip) as clicks_quantity FROM visits INNER JOIN clicks ON visits.id=clicks.id WHERE clicks.clickDate BETWEEN 1 and 7 GROUP BY visits.ip,clicks.clickDate, visits.browser
0 голосов
/ 04 ноября 2018

Возможно вот так:

SELECT v.ip, count(*) as clicks_quantity,
       v.browser,
       group_concat(distinct c.clickDate) as clickDates
FROM visits v INNER JOIN
     clicks c
     ON v.id= c.id
WHERE c.clickDate BETWEEN 1 and 7
GROUP BY v.ip, v.browser;

Вы можете иметь несколько clickDates в зависимости от модели данных. Вы не указываете, что с ними делать, поэтому объединение различных значений в строке кажется разумным подходом.

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