Sql 查找日期时间范围的百分比

Sql 查找日期时间范围的百分比,sql,datetime,Sql,Datetime,我有这样一个数据集: problem_id -- aspect_type -- time_created 28 -- requirement -- 9/9/2013 16:44 28 -- requirement -- 9/9/2013 18:47 28 -- artifact -- 9/9/2013 20:32 35 -- artifact -- 9/5/2013 1:52 35 -- artifact -- 9/9/2013 12:06 35 -- function -- 9/9/2013

我有这样一个数据集:

problem_id -- aspect_type -- time_created
28 -- requirement -- 9/9/2013 16:44
28 -- requirement -- 9/9/2013 18:47
28 -- artifact -- 9/9/2013 20:32
35 -- artifact -- 9/5/2013 1:52
35 -- artifact -- 9/9/2013 12:06
35 -- function -- 9/9/2013 11:55
对于每个问题,我希望在创建所有方面的过程中,在特定的时间范围内找到主要方面的类型。例如,在上述集合中,对于问题28,第一季度和第二季度以“需求”类型为主,最后一季度以“工件”类型为主。
为此,首先我想确定时间范围。我可以通过以下内容获得最后四分位数的开头:

cast(max(created)-(max(created)-min(created))/4 as datetime) as last_quartile
但这只适用于在同一天创建的东西,如问题28。如果其他问题id为35,我会得到null。(max-min)/4是一个类似于'1993964.0000000000'或'3402.750000000'的数字,我假设是以秒为单位的。我可以为所有条目获取该值,但一旦我尝试将其添加到开始日期时间或从结束日期时间中减去它,对于那些未在同一天添加的类型,我会得到null。
有没有更直接的方法来定义日期时间范围,例如2013-09-03 18:17:20和2013-09-06 08:37:34之间的第三个20%,然后计算该范围内某个属性的出现次数?

对于最后一个四分位数开始的日期/时间,请尝试以下方法:

max(created) - interval timestampdiff(second, max(created), min(created)) / 4 second

您使用的是什么数据库?MySQL;我在MySQL WorkbenchHanks工作。下面是我想要的:DATE_SUB(max(created)、Interval ROUND(TIMESTAMPDIFF(second、min(created)、max(created))/4)DAY_second