[Linux-programlama] Re: Tek Sogu ile birden çok count nasıl ?

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

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


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.