Запрос на различия - PullRequest
       2

Запрос на различия

0 голосов
/ 11 сентября 2018

У меня есть две таблицы:

  • table1: идентификатор, создан

  • table2: id, modi

+------------+----------+
|    id      | created  |
+------------+----------+
|    1       | 18/01/01 |
|    2       | 18/01/01 |
|    3       | 18/01/01 |
|    4       | 18/01/01 |
+------------+----------+  
+------------+----------+
|    id      | modi     |
+------------+----------+
|    1       | 18/01/02 |
|    4       | 18/01/02 |
|    1       | 18/01/03 |
|    2       | 18/01/03 |
|    3       | 18/01/04 |
|    2       | 18/01/04 |
|    2       | 18/01/05 |
+------------+----------+   

Мне нужен запрос (MySQL), который распечатывает, сколько дней требуется каждому пользователю, чтобы изменить журнал, сгруппированный по дням. Например, 1 день - 3 пользователя, 2 дня - 7 пользователей и т.д ...

+------------+----------+
|    days    | num_id   |
+------------+----------+
|    1       | 2        |
|    2       | 1        |
|    3       | 1        |
+------------+----------+

Мне удалось сделать это:

select datediff(table1.id, table2.modi) as date_diff, count(*) as nums
from table1, table2
where table1.id = table2.id
group by date_diff

Проблема в том, что она также включает в себя вторую (или более) запись помимо первой, но я бы хотел включить только первую.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

вам нужно использовать правильный столбец для datediff функции

select datediff(table3.modi,table1.created) as date_diff, count(*) as nums
    from table1 left  join 
    (
    select id,min(modi) as modi  from table2 group by id
    ) 
    as table3
    on table1.id = table3.id
    group by date_diff
0 голосов
/ 11 сентября 2018

просто добавьте Join Left в запросе.:)

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