我做了搜索,我发现这个
SQL按最近的日期选择行,
这与我想要的非常接近,但我似乎无法使它工作.
我收到错误列'ID'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.
我希望每个Distinct Name的最新行日期
Select ID,Name,Price,Date
From table
Group By Name
Order By Date ASC
Run Code Online (Sandbox Code Playgroud)
这是我想要的一个例子
Table
ID| Name | Price | Date
---------------------------------
0 | A | 10 | 2012-05-03
1 | B | 9 | 2012-05-02
2 | A | 8 | 2012-05-04
3 | C | 10 | 2012-05-03
4 | B | 8 | 2012-05-01
Run Code Online (Sandbox Code Playgroud)
期望的结果
ID| Name | Price | Date
------------------------------
2 | A | 8 | 2012-05-04
3 | C …Run Code Online (Sandbox Code Playgroud) 我将响应存储在mysql表中的各种rpc调用中,其中包含以下字段:
Table: rpc_responses
timestamp (date)
method (varchar)
id (varchar)
response (mediumtext)
PRIMARY KEY(timestamp,method,id)
Run Code Online (Sandbox Code Playgroud)
什么是选择最近期的所有现有组合响应的最佳方法method和id?
对于每个日期,给定方法/ id只能有一个响应.
并非所有呼叫组合都必须存在于给定日期.
有许多方法,数千个ID和至少365个不同的日期
样本数据:
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 "....."
Run Code Online (Sandbox Code Playgroud)
期望的结果:
2009-01-10 getThud 16 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."
Run Code Online (Sandbox Code Playgroud)
(我不认为这是同一个问题 - 它不会给我最新的response)
假设下面的记录表
ID Name AppointmentDate
-- -------- ---------------
1 Bob 1/1/2010
1 Bob 5/1/2010
2 Henry 5/1/2010
2 Henry 8/1/2011
3 John 8/1/2011
3 John 12/1/2011
Run Code Online (Sandbox Code Playgroud)
我想按人检索最近的约会日期.所以我需要一个查询,它将提供以下结果集.
1 Bob 5/1/2010 (5/1/2010 is most recent)
2 Henry 8/1/2011 (8/1/2011 is most recent)
3 John 8/1/2011 (has 2 future dates but 8/1/2011 is most recent)
Run Code Online (Sandbox Code Playgroud)
谢谢!