mysql中想选出最新的日期,如何从mysql表中选择最新的一组日期记录

I am storing the response to various rpc calls in a mysql table with the following fields:

Table: rpc_responses

timestamp (date)

method (varchar)

id (varchar)

response (mediumtext)

PRIMARY KEY(timestamp,method,id)

What is the best method of selecting the most recent responses for all existing combinations of method and id?

For each date there can only be one response for a given method/id.

Not all call combinations are necessarily present for a given date.

There are dozens of methods, thousands of ids and at least 365 different dates

Sample data:

timestamp method id response

2009-01-10 getThud 16 "....."

2009-01-10 getFoo 12 "....."

2009-01-10 getBar 12 "....."

2009-01-11 getFoo 12 "....."

2009-01-11 getBar 16 "....."

Desired result:

2009-01-10 getThud 16 "....."

2009-01-10 getBar 12 "....."

2009-01-11 getFoo 12 "....."

2009-01-11 getBar 16 "....."

(I don't think this is the same question - it won't give me the most recent response)

解决方案

Self answered, but I'm not sure that it will be an efficient enough solution as the table grows:

SELECT timestamp,method,id,response FROM rpc_responses

INNER JOIN

(SELECT max(timestamp),method,id FROM rpc_responses GROUP BY method,id) latest

USING (timestamp,method,id);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值