SQL ile grupları filtreleme hakkında

Merhaba Arkadaşlar,

Python ile bir program yapıyorum bir sorgu yapmaya ihtiyacım var yardımcı olabilir misiniz ?

Aşağıdaki tabloda aynı NO alanına sahip değerler var yapmak istediğim şey değer alanında sadece VPS yada VPS ve MANUEL yazan NO alanını almak aşağıdaki örnek veride 1 - 3 - 4 NO alanı gelmesin.

|NO|DEGER|
|1|VPS|
|1|VDS|
|1|HOSTING|
|2|VPS|
|2|MANUEL|
|3|HOSTING|
|3|MANUEL|
|4|VPS|
|4|VDS|
|5|VPS|
|6|MANUEL|
|6|VPS|

İyi Çalışmalar.

Bu durumda 1 ve 4 niye gelmiyor onların da gelmesi lazım değil mi?

Çünkü sadece VPS veya VPS - MANUEL harici içinde farklı bir başlık olan NO 'ları istemiyorum

Butun NO’lari alan bir sorgu ile DEGER’i VPS veya MANUEL disinda bir sey olan NO’lari alan ikinci bir sorgu yapip sonuclari birbirinden cikartabilirsin.

2 Beğeni

Dediğiniz gibi ilk istenmeyen verileri alıp bir tabloya yazdım daha sonra diğer sorgu ile sonuca ulaştım. Birşey daha sormak istiyorum şimdi elimde tarih değerleri var datetime(tarih, ‘5 minutes’) şeklinde 5 dakika ekliyorum bunu random olarak 5 ile 15 dakika arasında nasıl atayabilirim ?

Neden veriyi bir programlama diline alip islemiyorsunuz?

datetime(tarih, CAST(random_5_15() AS TEXT) || ' minutes') veya tarihleri Python gibi bir programlama diline cekip standart random ve datetime kutuphanelerini kullanabilirsiniz.


Cevabi datanin programlama dilinde islenmesi gerektigini vurgulamak icin kirptim, ama referans icin yazmis bulundugum su alternatifleri de ekleyeyim:

  • Gecici tablo yerine CTE kullanilabilir. (WITH (SELECT ...) AS gecici_tablo)
  • Gecici tablo yerine subquery kullanilabilir: SELECT ... NOT IN (SELECT ...)
  • DEGER kolonu aggrege edilebilir: SELECT NO, bool_or(DEGER IN ...) x HAVING NOT x (Fonksiyonu SQLite’ta bulamadim)
  • ANY operatoru kullanilabilir: SELECT ... NO != ANY (SELECT NO ...)
1 Beğeni

Teşekkürler hocam python ile işlemleri yapıyorum zaten fakat sorgu ile çözmek istedim

Merhaba,

datetime(tarih, CAST(random_5_15() AS TEXT) || ’ minutes’)

bu sorguyu denediğim zaman no such function: random_5_15 hatası veriyor.

Oraya 5 ile 15 arasi rastgele sayi ureten fonksiyon/ifade gelecek

Bu işlemi yapamadım olmuyor. Farklı yöntemlerle yapmaya çalışacam

Sorunu çözdünüz mü, bilmiyorum. SELECT * FROM TABLO_ADI WHERE DEGER IN ('VPS','MANUAL') derseniz sorun çözülür diye düşünüyorum.