我编写了这个查询并尝试按“D”进行分组,但它不起作用。有什么帮助吗??
(select hr_id, max(delivery_dt)as maxd,
(CASE
WHEN max(delivery_dt) > '11-may-2010' then '< 6 MO'
WHEN max(delivery_dt) > '11-may-2004' and max(delivery_dt) < '11-may-2010' then '7 - 78 MO'
WHEN max(delivery_dt) > '11-nov-1999' and max(delivery_dt) < '11-april-2004' then '79 - 132 MO'
ELSE '> 133 MO' END) D
from INDIVIDUAL_VE_TB
where hr_id in (select distinct hr_id from MODEL_SC_TB b where b.model_id='200')
Group by hr_id)
我得到了这个结果
HR DATE D
2000001076 4/22/1994 > 133 MO
2000004986 12/13/2004 7 - 78 MO
2000003382 12/13/2003 7 - 78 MO
这是按 HR 分组,我也尝试按 D 分组,但不起作用 我将 D 添加到组中 按 hr_id、D 分组
任何帮助都会很棒!
提前谢谢
最佳答案
你可以尝试:
Select hr_id, max(maxd), D
from
(select hr_id, max(delivery_dt)as maxd,
(CASE
WHEN max(delivery_dt) > '11-may-2010' then '< 6 MO'
WHEN max(delivery_dt) > '11-may-2004' and max(delivery_dt) < '11-may-2010' then '7 - 78 MO'
WHEN max(delivery_dt) > '11-nov-1999' and max(delivery_dt) < '11-april-2004' then '79 - 132 MO'
ELSE '> 133 MO' END) D
from INDIVIDUAL_VE_TB
where hr_id in (select distinct hr_id from MODEL_SC_TB b where b.model_id='200')
Group by hr_id)
group by D, hr_id
关于SQL - 具有 Group By 功能的 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216416/