小编典典

如何基于Oracle中的Case语句使用Group By?

sql

我有一个SQL查询,在这里我使用OracleCASE来比较日期列是否 小于大于
当前日期。但是,如何在CASE-statement中使用该GROUP BY-statement?我想计算每种情况下的记录。

例如

select
    (case
        when exp_date > sysdate then 1
        when exp_date <= sysdate then 2
        else 3
     end) expired, count(*)
from mytable
group by expired

但是尝试此操作时出现错误:ORA-00904。有什么建议?


阅读 144

收藏
2021-03-17

共1个答案

小编典典

select
(case
    when exp_date > sysdate then 1
    when exp_date <= sysdate then 2
    else 3
 end) expired, count(*)
from mytable
group by (case
    when exp_date > sysdate then 1
    when exp_date <= sysdate then 2
    else 3
 end)
2021-03-17