我有一个包含两个字段testing
和name
的表com_date
。表中的值如下所示。日期格式为mm/dd/yyyy
Name | Com_Date
MC | 2/1/2013
MC | 2/2/2013
MC | 2/5/2013
MR | 2/4/2013
MR | 2/5/2013
MU | 2/1/2013
MU | 2/2/2013
我需要根据不同的名称和最新日期查询记录。 最新记录第一个和基于名称的独特记录。 喜欢:
MC | 2/5/2013
MR | 2/5/2013
MU | 2/2/2013
答案 0 :(得分:2)
您需要使用带有Max()
的汇总函数GROUP BY
:
select name, max(com_date) MaxCom_Date
from yourtable
group by name
也可以使用row_number() over(partition by...)
:
select name, com_date
from
(
select name,
com_date,
row_number() over(partition by name order by com_date desc) rn
from yourtable
)
where rn =1
两者的结果是:
| NAME | MaxCom_Date |
---------------------
| MC | 02/05/2013 |
| MR | 02/05/2013 |
| MU | 02/02/2013 |
答案 1 :(得分:1)
SELECT name, MAX(date)
FROM table
GROUP BY name
ORDER BY 2;
答案 2 :(得分:0)
如果您的com_date列采用日期格式,则可以执行以下操作:
SELECT name, TO_CHAR(MAX(com_date), MM/DD/YYYY) FROM testing GROUP BY name ORDER BY name ASC;
如果您的日期不是日期格式,则需要在将其粘贴到MAX()之前进行转换