mysql - Mysql Group By 使用 Count 获取最新记录
问题描述
这是我的客户表。
我想按 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
但无法得到计数。请帮忙。
编辑:这个答案无助于获得计数
解决方案
尝试加入子查询:
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;
推荐阅读
- python - 协同信号的逆排列错误解决方案?
- keras - pytorch的交叉熵损失与keras的“categorical_crossentropy”不同吗?
- php - 比较 Laravel Blade 中的两个数组
- java - JavaFX 图像渲染占用太多内存,而网络摄像头流导致应用程序崩溃
- amazon-web-services - 如何使用 lambda 管理大量记录
- angular - 在 Travis-CI 中缓存 Angular 模块编译
- python - 无法通过 USB 通信 midi (python)
- mongodb - Golang - gzipping mongodb find 查询的游标数据,写入文件并解压缩时出错
- python - 我正在尝试显示使用输入函数获得的字符串的索引值
- node.js - React 生产构建 Express 侦听器或服务器未运行