一张表里面同一个项目又很多个任务。即一个项目ID对应多个r任务ID,取任务开始最小时间为项目开始时间。取任务最晚结束时间为项目实际结束时间,但是任务结束时间因为有的还在进行中,所以任务结束时间有的有值,有的为空,我想取如果全部都有值,就取最大值。当有空值时候就是取空值。求sql
select
任务ID,
min(任务时间) as 开始时间,
if(max(ifnull(任务时间,'9999-01-01'))='9999-01-01','', max(ifnull(任务时间,'9999-01-01')))as 结束时间
from table
group by 任务ID
使用开窗函数就行了呀:窗函数名([<字段名>]) over([partition by <分组字段>] [order by <排序字段> [desc]] [< 细分窗口>])