我试图弄清楚如何只选择在start_date和end_date之间有少于平均天数的记录。
我的桌子上有3张唱片,我用avg做了很多次尝试,但我似乎还没做好。我创建的表(大学)是这样的:
dep_id / class_id / start_date / end_date /评论 7500 / 10050 /10-2月10日-10月-2月10日 7501 / 10060 /17-3月-10月-3月10日/肮脏 7502 / 10070 /21-6月-10月29日-7月-10日
到目前为止,我一直在努力做到这一点:
select dep_id, class_id, start_date, end_date, comments
from university
where dep_id = (select avg( cast(end_date as DATE) - cast(start_date as date)) as avg_days
from university);发布于 2014-11-21 13:27:00
试试这个:
SELECT dep_id,class_id,start_date,end_date,comments
FROM (
SELECT t1.*,AVG(TO_DATE(end_date,'dd-mon-yy') - TO_DATE(start_date,'dd-mon-yy')) OVER() total_avg
,TO_DATE(end_date,'dd-mon-yy') - TO_DATE(start_date,'dd-mon-yy') diff FROM university t1) q
WHERE diff< total_avghttps://stackoverflow.com/questions/27062243
复制相似问题