Sql hakkinda yardim.

Bu konuyu okuyanlar

Fiberadam

Asistan
Katılım
24 Temmuz 2010
Mesajlar
362
Reaksiyon puanı
14
Puanları
0
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.
 

s7v7n

Asistan
Katılım
16 Aralık 2009
Mesajlar
216
Reaksiyon puanı
6
Puanları
0
--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]
 

vatan_tr

Öğrenci
Katılım
30 Eylül 2010
Mesajlar
39
Reaksiyon puanı
0
Puanları
0
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
 

Turab Garip

Müdavim
Emektar
Katılım
30 Mayıs 2007
Mesajlar
6,887
Reaksiyon puanı
175
Puanları
63
Eğer tablon ilk şekildeki gibi kalacaksa, toplam gol sayısı için şu işe yarayabilir:
Kod:
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

Asistan
Katılım
24 Temmuz 2010
Mesajlar
362
Reaksiyon puanı
14
Puanları
0
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.
 

Turab Garip

Müdavim
Emektar
Katılım
30 Mayıs 2007
Mesajlar
6,887
Reaksiyon puanı
175
Puanları
63
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

Asistan
Katılım
24 Temmuz 2010
Mesajlar
362
Reaksiyon puanı
14
Puanları
0
Ilk basta tek gol yazdigim icin calismisti ama 2 tane yazinca calismadigi fark ettim. Tesekkurler.
 
Üst