veya tarihinden daha büyük bir tarih sütunun 'dan daha küçük olup olmadığını karşılaştırmak için Oracle CASE
'u kullandığım bir SQL sorgum var. Ancak bu CASE
-statement'i GROUP BY
-statement'te nasıl kullanırım? Her durumda kayıtları saymak istiyorum.Oracle'da bir Case deyimine dayanarak Group By'ı nasıl kullanırım?
E.g.
select
(case
when exp_date > sysdate then 1
when exp_date <= sysdate then 2
else 3
end) expired, count(*)
from mytable
group by expired
Bunu denerken bir hatayla karşılaşıyorum: ORA-00904
. Baska öneri? Bu konuya ilgili değildir rağmen ayrıca vaka ifadeleri topaklaşabilir, ek bir girdi olarak
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;
Umarım yardımcı olur ...
http://stackoverflow.com/questions/268429/group-by-alias-oracle – manurajhada