Mysql Group By получил последнюю запись с графом - PullRequest
0 голосов
/ 16 ноября 2018

Это моя таблица клиентов.

Customer table

Я хочу сгруппировать по emp_id по количеству.Но Group By получает «первую» запись, а не «самую новую».

Я пробовал различные запросы, вот так

SELECT id, emp_id, COUNT( * ) AS count, created_at
FROM  customer c
WHERE  created_at = (
SELECT MAX(  created_at ) 
FROM  customer c2
WHERE c2.emp_id = c.emp_id
)
GROUP BY  emp_id 
ORDER BY  created_at DESC 
LIMIT 0 , 30

enter image description here

Но не могу получить счет.Пожалуйста, помогите.

Редактировать: этот ответ не помогает получить счет

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018
please try this 
SELECT cust1.id, cust1.emp_id, cust1.created_at, cust2.cnt
FROM customer cust1
INNER JOIN
(
    SELECT emp_id, MAX(created_at) AS max_created_at, COUNT(*) AS count
    FROM customer
    GROUP BY emp_id
) cust2
    ON cust1.emp_id = cust2.emp_id AND cust1.created_at = cust2.max_created_at;
0 голосов
/ 16 ноября 2018

Попробуйте присоединиться к подзапросу:

SELECT c1.id, c1.emp_id, c1.created_at, c2.cnt
FROM customer c1
INNER JOIN
(
    SELECT emp_id, MAX(created_at) AS max_created_at, COUNT(*) AS cnt
    FROM customer
    GROUP BY emp_id
) c2
    ON c1.emp_id = c2.emp_id AND c1.created_at = c2.max_created_at;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...