Jon*_*nas 10 sql oracle group-by case
我有一个SQL查询,我使用Oracle CASE来比较日期列是否小于或大于当前日期.但是如何在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
Run Code Online (Sandbox Code Playgroud)
但是我在尝试时遇到错误:ORA-00904.有什么建议?
pau*_*aul 14
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)
Run Code Online (Sandbox Code Playgroud)
Oll*_*lie 12
使用内联视图:
SELECT expired,
count(*)
FROM (SELECT (CASE
WHEN exp_date > SYSDATE THEN 1
WHEN exp_date <= SYSDATE THEN 2
ELSE 3
END) AS expired
FROM mytable)
GROUP BY expired;
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你...
| 归档时间: |
|
| 查看次数: |
82991 次 |
| 最近记录: |