İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. SDN Programlama Kafe
SDN Programlama Kafe

Sql hakkinda yardim.

Fiberadam31.01.20116 cevap1.857 görüntüleme
2010'den beri362 mesaj
#1
Selamlar,

Nasil yapabilecegimi ogrenmek istedigim bir konuda, yardim yada yonlendirme rica ediyorum arkadaslar.

3 kolunlu bir tablo dusunun

Hafta | Atilan Gol dakikalari | Yenilen Gol dakikalari
1 12-40-80 25
2 30-50 NULL
3 NULL 60-70
4 xxx xxxx
5
6

Seklinde giden.

Benim yapmak istedigim, bir sorgu yardimiyla asagida belirtmis oldugum bilgilere ulasmak.

Mesela: Toplam atilan gol sayisi ve yenilen gol sayisi,
Yuzde olarak istatislikleri, ornegin atilan toplam 60 golun 30 u ilk 20 dakika da, 15 tanesi 20-30 dakika araliginda ve bunun turevleri gibi.

Bunlari nasil yapabilirim?

Tesekkurler.
Cevaplar
2009'den beri216 mesaj
#2
--Atilan gol sayisi
SELECT COUNT(2) FROM TABLE
--Yenen gol sayisi
SELECT COUNT(3) FROM TABLE
--Atilan gol sayisi dakikaya gore
SELECT COUNT(2) FROM TABLE GROUP BY [Atilan Gol dakikalari]
2010'den beri39 mesaj
#3
tabloları bu şekilde oluşturursan istediğin sonuca ulaşamazsın..

---------- Post added at 10:09 ---------- Previous post was at 09:55 ----------

Tablonu şöyle değiştir bence..
Hafta | golDakikasi | AttikMiYedikMi
1 5 0
1 6 1
1 15 0
1 55 0
2 22 1
2007'den beri6.903 mesaj
#4
Eğer tablon ilk şekildeki gibi kalacaksa, toplam gol sayısı için şu işe yarayabilir:
SELECT FIND_IN_SET('-', atilan_gol_dakikalari)+1 FROM goller


Verdiğin formata göre atılan gol dakikaları "atilan_gol_dakikalari" isimli sütunda toplanmışsa, sütundaki gol dakikaları kısa çizgi (-) ile ayrılmışsa, tablonun da ismi "goller" ise MySQL'de bu sorgunun atılan toplam gol sayısını vermesi gerekir. Aynı şekilde yenilen gol sayısını da bir sorgu ile seçip ikisini toplayabilirsin. (Atılan+Yenilen istiyorsan.)

Yüzde hesabını bu tablo formatında SQL ile yapman tahmin ediyorum biraz uğraştırır; prosedür yazman gerekir. (Bu konuda yardımcı olamam pek bilmiyorum SQL prosedürü yazmayı). Ancak eğer bir çıktı almak için herhangi bir script dili kullanıyorsan, SQL'de yüzde hesaplamak yerine verileri seçip yüzdeyi script içinde hesaplamak daha kolay ve avantajlı olur.
Fiberadam Konuyu açan
2010'den beri362 mesaj
#5
S7v7n mesajin icin tesekkurler, ilk iki sorguda sorun yok ama son sorgu olmadi.

Vatan_tr tesekurler aslinda attikmi yedikmi kisminida su etapda es gecebilrim ama 1 den fazla gol oldugu zaman, 2-3 farkli degeri ayni hucre icine yazip daha sonra nasil bir sorgu ile bu bilgilere ulasirim

Bu konuda cok iyi olmadigimdan uygun tabirleri de kullanmiyor olabilirim.

Kisacisi yapmaya calistigim sey ufak bir istatistik tablosu, gol dakiklarini girecegim. Sonra 6 zaman dilimde sorgu yapip (0-15, 16-30, 31-45, 46-60, 61-75, 76-90) sonuclari almak istiyorum.

ornek: 10 golun 5'i 16-30 dakilar arasinda atilmis %50, 2 si 60-75 zaman diliminde atilmis yuzdesi %20 .. Bunun gibi.. ek olarak takimin gol attigi zaman diliminlerinin yuzde olarak siranmasini filan istiyorum.

Tablodaki kolon sayisi yada kolonlarin ne olacagi konusunda problem yok . Ama tabikide her dakika icin bir kolon koyamam. Her zaman dilimi icin bir kolon koysam. Ayni zaman diliminde 2 gol olursa bunu nasil hesaplatacagim.

Biraz zor oldugunu biliyorum zaman ayiran arkadaslara tesekkurler.

---------- Post added at 10:56 ---------- Previous post was at 10:50 ----------

Elmacik tesekkurler. Ben cok iyi bilmiyorum acikcasi Sql i kendi kendime ogrenmeye calisiyorum su aralar. Verdigin kodu deneyecegim, yuzde kismini da o asamaya geldigim zaman cozmeye calisirim artik. Tesekkurler.
2007'den beri6.903 mesaj
#6
COUNT sorgusu eğer golleri "20-45-60" gibi ayırdıysan çalışmaz. 20, 45 ve 60ıncı dakikalarda gol olduğunu göstermez, her satırı bir tane sayar. Yani üç golü tek gol sayar. Sayıları kontrol et.
Fiberadam Konuyu açan
2010'den beri362 mesaj
#7
Ilk basta tek gol yazdigim icin calismisti ama 2 tane yazinca calismadigi fark ettim. Tesekkurler.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.