SQL:MySQL中的GROUP BY问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQL:MySQL中的GROUP BY问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2583字,纯文字阅读大概需要4分钟。
内容图文
![SQL:MySQL中的GROUP BY问题](/upload/InfoBanner/zyjiaocheng/898/e5623e6b65174267813f3973c92c5e58.jpg)
这是数据库表
╔════╦═════════════╦══════════════════╦═══════╗
║ id ║ customer_id ║ last_seen ║ param ║
╠════╬═════════════╬══════════════════╬═══════╣
║ 1 ║ 12345 ║ 2012-08-01 12:00 ║ 1 ║
║ 2 ║ 22345 ║ 2012-08-01 12:00 ║ 1 ║
║ 3 ║ 32345 ║ 2012-08-01 12:00 ║ 1 ║
║ 4 ║ 42345 ║ 2012-08-01 12:00 ║ 1 ║
║ 5 ║ 52345 ║ 2012-08-01 12:00 ║ 1 ║
║ 6 ║ 12345 ║ 2012-09-01 12:00 ║ 2 ║
║ 7 ║ 12345 ║ 2012-10-01 12:00 ║ 3 ║
╚════╩═════════════╩══════════════════╩═══════╝
其中id是AUTO INCREMENT主键.
我想要实现的是获取每个customer_id的最后一条记录.预期结果 :
╔════╦═════════════╦══════════════════╦═══════╗
║ id ║ customer_id ║ last_seen ║ param ║
╠════╬═════════════╬══════════════════╬═══════╣
║ 2 ║ 22345 ║ 2012-08-01 12:00 ║ 1 ║
║ 3 ║ 32345 ║ 2012-08-01 12:00 ║ 1 ║
║ 4 ║ 42345 ║ 2012-08-01 12:00 ║ 1 ║
║ 5 ║ 52345 ║ 2012-08-01 12:00 ║ 1 ║
║ 7 ║ 12345 ║ 2012-10-01 12:00 ║ 3 ║
╚════╩═════════════╩══════════════════╩═══════╝
我试过这个SQL,但它返回错误的结果:
SELECT customer_id, param, last_seen
FROM `my_table`
GROUP BY customer_id
ORDER BY last_seen DESC
我在这里错过了什么?
更新:表结构(DESC my_table的输出)
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| customer_id | varchar(8) | NO | | NULL | |
| last_seen | datetime | NO | | NULL | |
| param | int(11) | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
解决方法:
子查询背后的想法是它分别获取每个Customer_ID的最新last_seen值.然后,子查询的结果将与原始表连接,前提是必须满足条件:CustomerID和日期必须相互匹配.
SELECT a.*
FROM Customer a
INNER JOIN
(
SELECT Customer_ID, MAX(last_seen) maxDate
FROM Customer
GROUP BY Customer_ID
) b ON a.Customer_ID = b.Customer_ID AND
a.last_seen = b.maxDate
ORDER BY a.ID
后续问题:请您检查记录ID 6的last_seen值是否正确?
内容总结
以上是互联网集市为您收集整理的SQL:MySQL中的GROUP BY问题全部内容,希望文章能够帮你解决SQL:MySQL中的GROUP BY问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。