Mevlüt Becerikli

Basit diye bir ÅŸey yok !!! Bilmeyene 2+2 bile zor…

DECODE - Count The Number of Columns

Yazan: Mevlüt Becerikli Tarih: Oca 4th, 2010 | Kategori:: Oracle, PL/SQL, Veritabanı

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…



3 Yorum Yapilmis » “DECODE - Count The Number of Columns”

  1. güzel anlatım eline salık…

  2. biraz daha açık yazılabilirdi. çok işe yarar.
    elinize sağlık.

  3. 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…

Yorum Yapin