select * from 
(
select row_number() over(partition by '分组' order by '日期') as rownum -- 排序并分组
, * -- 所需显示的字段
from 表
) as T
where T.rownum = 1

对每组的数据按日期排序并加上行号
取出时只取行号为1,也就是第一条数据。