DECODE - Count The Number of Columns
Gene bir forum da sorulan güzel bir soruyu paylaşmak istiyorum.
|
MYID
|
COL1
|
COL2
|
COL3
|
|---|---|---|---|
|
abc
|
Y
|
Y
|
Y
|
|
xyz
|
N
|
Y
|
N
|
|
abc
|
Y
|
Y
|
N
|
Yukarıda ki yapıda ve verileri içeren tablo isminde bir tablomuz olsun. Bizden MYID alanı bazında kaç adet Y değerine sahip olduğumuzun istatistiği isteniyor. Bunu nasıl yaparız ? Önce tablomuzu oluşturup içini dolduralım.
CREATE TABLE tablo (myid varchar2(3),col1 VARCHAR2(1),col2 VARCHAR2(1),col3 VARCHAR2(1));
INSERT INTO tablo VALUES ( ‘abc’,'Y’,'Y’,'Y’);
INSERT INTO tablo VALUES ( ‘xyz’,'N’,'Y’,'N’);
INSERT INTO tablo VALUES ( ‘abc’,'Y’,'Y’,'N’);
Şimdi de istenen SQL sorgusunu yazalım.
SELECT myid, SUM(DECODE(col1, ‘Y’, 1, 0) + DECODE(col2, ‘Y’, 1, 0)+ DECODE(col3, ‘Y’, 1, 0)) AS TOTAL
FROM tablo
GROUP BY myid;
Sonuç mu ?
MYIDÂ Â Â TOTAL
abc   5
xyz   1
İyi Çalışmalar…


güzel anlatım eline salık…
biraz daha açık yazılabilirdi. çok işe yarar.
elinize sağlık.
Genelde konu anlatımından ziyade okudugum yada karşılaştığım sorunların çözümünü paylaşmaya çalışıyorum imkanım oldukça.
Yukarıda da bir ihtiyacımın çözümünü paylaşmak istemiştim.
Yorumunuzdan sonra Oracle’ da DECODE kullanımı içinde bir yazı hazırlamaya çalışacağım.
Yorumunuz için teÅŸekkür ederim…