From: Volkan YAZICI (yazicivo@ttnet.net.tr)
Date: Sun 12 Mar 2006 - 16:07:29 EET
Merhaba,
On Mar 12 02:27, Ahmet wrote:
> id | isim | vize | final
> 1 Ahmet 20 60
> 2 Mehmet 40 80
> 3 Hasan 80 87
> 2 Ahmet 50 90
>
> Bu tabloda tek bir sorgu ile
>
> 1- Toplam öğrenci sayısı
> 2- vizesi 40 dan büyük olanların sayısı
> 3- Finali 90 dan küçük olanların sayısı alınabilirmi ?
Evet yapılabilir. Şöyle ki:
SELECT
(SELECT count(id) FROM test_t) AS "toplam",
(SELECT count(id) FROM test_t WHERE vize > 40) AS "vize > 40",
(SELECT count(id) FROM test_t WHERE final < 90) AS "final < 90";
Siz doğru INDEX'leri oluşturun. Ayrıca belki şu daha hızlı çalışabilir:
SELECT
count(id) AS "toplam",
sum(CASE WHEN vize > 40 THEN 1 ELSE 0 END) AS "vize > 40",
sum(CASE WHEN final < 90 THEN 1 ELSE 0 END) AS "final < 90"
FROM test_t;
İyi çalışmalar.
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama