Получить максимальное значение для каждого клиента - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь установить SQL-запрос, чтобы получить строку с самым последним значением updated_at для каждого пользователя следующим образом:

select cr.id_client,cr.updated_at,from_unixtime(cr.updated_at)
from clients_records as cr 
join clients_survey_records as csr 
on cr.id=csr.id 
group by id_client
having updated_at = max(updated_at)

Но это не работает

Ответы [ 3 ]

0 голосов
/ 10 апреля 2019

Я думаю, вам просто нужна функция MAX():

select cr.id_client, max(csr.updated_at), from_unixtime(max(csr.updated_at))
from clients_records  cr join 
     clients_survey_records csr 
     on cr.id = csr.id 
group by id_client;
0 голосов
/ 10 апреля 2019

Доброе утро.

Если я вас понимаю, вы можете получить самый последний измененный регистр.Правильный?Если это так, попробуйте:

SELECT cr.id_client, 
    (
        //Some query to concat and group data contained at clients_survey_records that You need
    ) AS last_survey_records
FROM clients_records as cr 
    INNER JOIN clients_survey_records as cs 
WHERE cr.id_client = cs.fk_client_id 
ORDER BY cr.id_client;

Вы можете легко заказать записи опроса по updated_at.

Некоторые ссылки: https://www.w3resource.com/mysql/string-functions/mysql-concat-function.php https://www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-group_concat.php https://www.w3resource.com/mysql/string-functions/mysql-concat_ws-function.php

0 голосов
/ 10 апреля 2019

использовать подзапрос corelates

select c1.* from clients_records c1
where c1.updated_at=( select max(updated_at) from clients_records
                   c2 where c1.id_client=c2.id_client
                     )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...