我们已经准备好了,你呢?

2026我们与您携手共赢,为您的企业形象保驾护航!

业务需求:查询出客户多次做的核酸信息的最新的一条。

想要查出的数据——同组最新时间的一条

通过子查询确定每个客户ID分组下的最新时间点,随后利用左连接操作获取与之相对应的客户详细信息。

SELECT
	b.* 
FROM
选取客户抗原表中每个客户的最大报告时间,以报告时间作为字段名,对客户ID进行分组,结果命名为a。
将客户抗原表b与抗原表a通过报告时间进行连接。

采用方法二:进行分组查询时,需按照从高到低的顺序排列,于group by字段之后附加desc以实现降序排列。

由于MySQL在执行分组操作group by时,会默认选取排序后id值的第一条记录,并且其执行顺序是先group by后order by,因此排序实际上是在分组之后进行的。在添加了desc关键字之后,原本的默认升序排列的id值将转变为降序排列。

SELECT
	*
FROM
	customer_antigen 
GROUP BY
	CUSTOMER_ID DESC

采用第三种方法:首先执行子查询进行排序,并限制结果数量至1000条,随后依据客户ID进行分组。

由于MySQL 5.7版本中,子查询的排序功能本身是无效的,只有当加入了limit子句之后,排序功能才会被激活。

这种方法不推荐,如果数据量很大的话会漏掉很多数据。

SELECT
	* 
FROM
选取客户抗原数据,按照报告时间降序排列,仅展示前一万条记录。
GROUP BY
	CUSTOMER_ID

MySQL同组最新时间查询方法_mysql时间函数_mysql查询最新核酸信息记录

结果——查出最新时间记录

总结:在MySQL中,要找出同一组中最新时间的记录,有三种方法。第一种方法最为高效,因为子查询仅涉及一个字段。第二种方法可能存在bug,如果插入的时间早于最新记录,那么降序查找可能会错误地返回次新时间的那条记录。第三种方法不推荐使用,因为在大数据量情况下可能会遇到问题。

二维码
扫一扫在手机端查看

    Tags : MySQL
本文链接:https://by928.com/10927.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线