Forum
Merhaba,
SQL ile aram iyidir fakat geçenlerde bir sorgu yazmam gerektiğinde nasıl yazabileceğimi çözemediğim bir sorgu ile karşılaştım. Aşağıdaki tabloda bulunan field1 sütununu guruplayıp her bir sayıdan kaç tane olduğunu saydırmak istiyorum ve sonra içlerinden birer tane olanların ID lerini alabilmem gerekiyor. Ben aşağıdaki gibi bir sorgu yazdığımda birer tane olanları görebiliyorum fakat select kısmına ID sütununu eklediğimde gruplandırma bozulduğu için birer tane olanların ID lerini alamıyorum. Örneğin aşağıdaki tabloya göre Field1 sütunundaki 2 ve 7 değerleri birer tane olduğu için sorgu çalıştığında onların ID leri olan 5 ve 6 yı alabilmeliyim. Tecrübeli arkadaşların önerilerini bekliyorum. Teşekkürler...
Select Count(*) from anytable group by Field1 having Count(*) =1
ID Field1
1 5
2 3
3 5
4 3
5 2
6 7
Şu an önümde Oracle açık olmadığından sadece varsayımla hareket ederek aşağıdakini denermisin?
Select id,field1 from anytable
where id exists (Select Count(*) from anytable group by Field1 having Count(*) =1)
Bir kaç deneme yaptım ama malesef olmadı.
Merhabalar,
yukarıdaki sorgu, id alanının varlığını adet de aradığından istenilen sonucu vermeyecektir.
Aşağıdaki sorgu ile adetleri 1 olan field1 lerin id lerini listeleyebilirsiniz .
Select anytable.id, anytable.field1 From
(Select field1, count(*) from anytable GROUP BY field1 having Count(*) =1) gruplu
inner join anytable on gruplu.field1=anytable.field1
Çok teşekkür ederim şimdi oldu.
Bende aynı sql i kullanarak sorunumu çözdüm .. Çok teşekkür ederim