Kayıt sayısını da döndürmek

Lists: pgsql-tr-genel
From: "esrefatak" <esrefatak(at)gmail(dot)com>
To: pgsql-tr-genel(at)postgresql(dot)org
Subject: Kayıt sayısını da döndürmek
Date: 2006-03-28 14:36:32
Message-ID: 1143556592.140006.58720@g10g2000cwb.googlegroups.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

Merhaba,

select id, baslik, yazar_adi
from makaleler

gibi bir SQL cümlem var. Dönen kayıtkümesinin bir sütununa, kayıt
sayısını yazdırmanın bir yolu var mıdır? Her seferinde ilaveten

select count(*) as ADET
from makaleler

benzeri bir SQL ifadesini de çağırmamının bir sürü sıkıntısı
var. Web uygulaması.

Teşekkür ederim.

Eşref Atak


From: "Ahmet" <corsairsoft(at)gmail(dot)com>
To: "PostgreSQL" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek
Date: 2006-03-28 15:48:20
Message-ID: 001101c6527f001101c6527f$0d4e7e50$0400000a@asusd4e7e5000000a@asus
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

select count(id), id, baslik, yazar_adi from makaleler

----- Original Message -----
From: "esrefatak" <esrefatak(at)gmail(dot)com>
To: <pgsql-tr-genel(at)postgresql(dot)org>
Sent: Tuesday, March 28, 2006 5:36 PM
Subject: [pgsql-tr-genel] Kayıt sayısını da döndürmek

Merhaba,

select id, baslik, yazar_adi
from makaleler

gibi bir SQL cümlem var. Dönen kayıtkümesinin bir sütununa, kayıt
sayısını yazdırmanın bir yolu var mıdır? Her seferinde ilaveten

select count(*) as ADET
from makaleler

benzeri bir SQL ifadesini de çağırmamının bir sürü sıkıntısı
var. Web uygulaması.

Teşekkür ederim.

Eşref Atak

adresine yollayabilirsiniz.

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)


From: "Ahmet" <corsairsoft(at)gmail(dot)com>
To: "PostgreSQL" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek
Date: 2006-03-28 16:00:46
Message-ID: 000b01c65280$c8ea07f000000a@asus
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

sembolik olarak group by id ekleyebilirsiniz veya

select count(id), makaleler.id, makaleler.baslik, makaleler.yazar_adi from makaleler

şeklinde alanların önüne tablo isminide yazarak sonuç alabilirsiniz

Kolay gelsin
----- Original Message -----
From: Esref Atak
To: Ahmet
Sent: Tuesday, March 28, 2006 6:56 PM
Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek

On 3/28/06, Ahmet <corsairsoft(at)gmail(dot)com> wrote:
select count(id), id, baslik, yazar_adi from makaleler

select anket_no, count(*) as adet
from cms_1_tr.anket

:

ERROR: column "anket.anket_no" must appear in the GROUP BY clause or be used in an aggregate function

--
Saygılarımla,
Eşref Atak


From: "Ahmet" <corsairsoft(at)gmail(dot)com>
To: "PostgreSQL" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek
Date: 2006-03-28 16:21:50
Message-ID: postgresql : re : [토토] Re : [토토] Re
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

sembolik olarak group by id kulanabilirsiniz

veya

PHP ile yazıyorsanız pg_num_rows() fonksiyonunu kullanabilirsiniz
http://tr2.php.net/manual/en/function.pg-num-rows.php
----- Original Message -----
From: Esref Atak
To: Ahmet
Sent: Tuesday, March 28, 2006 7:11 PM
Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek

On 3/28/06, Ahmet <corsairsoft(at)gmail(dot)com> wrote:
sembolik olarak group by id ekleyebilirsiniz veya

select count(id), makaleler.id, makaleler.baslik, makaleler.yazar_adi from makaleler

şeklinde alanların önüne tablo isminide yazarak sonuç alabilirsiniz

select cms_1_tr.anket.anket_no, count(cms_1_tr.anket.anket_no)
from cms_1_tr.anket

aynı hatayı almaya devam ediyorum.

--
Saygılarımla,
Eşref Atak


From: "Esref Atak" <esrefatak(at)gmail(dot)com>
To: PostgreSQL <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek
Date: 2006-03-28 17:18:54
Message-ID: b0e445b30603280918l64a16940qdbae70054a77d9b3@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

On 3/28/06, Ahmet <corsairsoft(at)gmail(dot)com> wrote:
>
> sembolik olarak group by id kulanabilirsiniz
>
> veya
>
> PHP ile yazıyorsanız pg_num_rows() fonksiyonunu kullanabilirsiniz
> http://tr2.php.net/manual/en/function.pg-num-rows.php
>

Özür dilerim. Umduğum çözüm, bunlardan hiçbiri değil. PHP örneğindeki
yöntem, ustaca bir yöntem değil. Zira, o yöntemde, örneğin 1 milyon kayıt
varsa, bu kayıtların tamamı VTS tarafından PHP'ye gönderiliyor. PHP ise
yalnızca sayıyor. Bu yöntem, hız ve bellek kaybı manasına geliyor. İlave
olarak, ben LIMIT OFFSET kullanacağımda, PHP yöntemi "kafadan" başarısız
olacaktır.

Her alanın adını GROUP BY ifadesine dahil etme yöntemi ise, hem bir çok
karmaşık SQL ifadesinin hem daha da karmaşıklaşması, hem performans kaybına
neden olması, hem de bazı durumlarda tamamen yetersiz kalması anlamına
geliyor.

Acaba, başka bir yöntem mümkün müdür? Önerisi olan var mıdır? Mesela benim
aklıma, şöyle bir Saklı Yordam geliştirmek bile geliyor:

sayfalama(sql, limit, offset)

bu yordam, geriye, hem kayıt kümesini döndürür, hem de bu kayıt kümesine
yeni bir sütun ekleyip, bu sütunun, kayıt sayısını içermesini sağlayabilir.
Fakat bu yöntem de biraz uç ve tuhaf bir yöntem gibi geliyor bana.

Nasıl bir amaç için böyle bir şeye ihtiyaç duyduğumu anlatabilmek için, bir
örnek sayfa göstermek istiyorum:

www [nokta] antalya [nokta] com.tr/tr/guncel/etkinlik/index.cfm

Bu sayfadaki örnekte, belirtilen ölçütlere uyan ne kadar kayıt bulunduysa
tümü Uygulama Sunucusu'na döndürülüyor. Uygulama Sunucusu'ndaki kodlar da
kayıt sayısını sayıp, sayfanın sol alt tarafında görüntülüyor. Ardından,
kayıtlar arasında döngü yapmak suretiyle, talep edilen aralıktaki kayıtları
görüntülüyor. Fakat, arz ettiğim gibi bu yöntem; ağ trafiğini artırmak,
bellek kaybı, işlem süresi uzaması vb bir dizi sorunu beraberinde getiriyor.

Umarım, ızdırabımı anlatabilmişimdir.

--
Saygılarımla,
Eşref Atak


From: "Ahmet" <corsairsoft(at)gmail(dot)com>
To: "PostgreSQL" <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek
Date: 2006-03-28 17:37:51
Message-ID: postg토토 사이트 추천sql : 토토 사이트 추천 : [pgsql-tr-genel]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-tr-genel

bu işlem için fonksiyon tanımlayabilirsiniz

bu yöntem sonucun dönmesi açısından hızlı olacaktır

örnek :

CREATE OR REPLACE FUNCTION toplam() RETURNS RECORD AS

$$

DECLARE

a.. sonuc record;

sorgum text := 'SELECT count (id) FROM tablom';

BEGIN

a.. EXECUTE sorgum INTO sonuc;

RETURN sonuc;

END;

$$

LANGUAGE 'plpgsql' STABLE;

test=# select toplam();

----- Original Message -----
From: Esref Atak
To: PostgreSQL
Sent: Tuesday, March 28, 2006 8:18 PM
Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek

On 3/28/06, Ahmet <corsairsoft(at)gmail(dot)com> wrote:
sembolik olarak group by id kulanabilirsiniz

veya

PHP ile yazıyorsanız pg_num_rows() fonksiyonunu kullanabilirsiniz
http://tr2.php.net/manual/en/function.pg-num-rows.php

Özür dilerim. Umduğum çözüm, bunlardan hiçbiri değil. PHP örneğindeki yöntem, ustaca bir yöntem değil. Zira, o yöntemde, örneğin 1 milyon kayıt varsa, bu kayıtların tamamı VTS tarafından PHP'ye gönderiliyor. PHP ise yalnızca sayıyor. Bu yöntem, hız ve bellek kaybı manasına geliyor. İlave olarak, ben LIMIT OFFSET kullanacağımda, PHP yöntemi "kafadan" başarısız olacaktır.

Her alanın adını GROUP BY ifadesine dahil etme yöntemi ise, hem bir çok karmaşık SQL ifadesinin hem daha da karmaşıklaşması, hem performans kaybına neden olması, hem de bazı durumlarda tamamen yetersiz kalması anlamına geliyor.

Acaba, başka bir yöntem mümkün müdür? Önerisi olan var mıdır? Mesela benim aklıma, şöyle bir Saklı Yordam geliştirmek bile geliyor:

sayfalama(sql, limit, offset)

bu yordam, geriye, hem kayıt kümesini döndürür, hem de bu kayıt kümesine yeni bir sütun ekleyip, bu sütunun, kayıt sayısını içermesini sağlayabilir. Fakat bu yöntem de biraz uç ve tuhaf bir yöntem gibi geliyor bana.

Nasıl bir amaç için böyle bir şeye ihtiyaç duyduğumu anlatabilmek için, bir örnek sayfa göstermek istiyorum:

www [nokta] antalya [nokta] com.tr/tr/guncel/etkinlik/index.cfm

Bu sayfadaki örnekte, belirtilen ölçütlere uyan ne kadar kayıt bulunduysa tümü Uygulama Sunucusu'na döndürülüyor. Uygulama Sunucusu'ndaki kodlar da kayıt sayısını sayıp, sayfanın sol alt tarafında görüntülüyor. Ardından, kayıtlar arasında döngü yapmak suretiyle, talep edilen aralıktaki kayıtları görüntülüyor. Fakat, arz ettiğim gibi bu yöntem; ağ trafiğini artırmak, bellek kaybı, işlem süresi uzaması vb bir dizi sorunu beraberinde getiriyor.

Umarım, ızdırabımı anlatabilmişimdir.

--
Saygılarımla,
Eşref Atak


From: Mustafa Yörükoğlu <Mustafa(at)Yorukoglu(dot)name(dot)tr>
To: PostgreSQL <pgsql-tr-genel(at)postgresql(dot)org>
Subject: Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Re: [pgsql-tr-genel] Kayıt sayısını da döndürmek
Date: 2006-03-29 13:06:44
Message-ID: 442A8664.6010909@Yorukoglu.name.tr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg배트맨 토토SQL

Selamlar,
bu işinizi görür mü?:
-belirtilen kriterlere göre sorguyu oluştur (query)
-kayıt sayısını sorgula ( select count(*) from (sorgu) as sorgum; )
-kayıtları getir. (sorgu)

İyi çalışmalar.
Mustafa Yörükoğlu

Esref Atak wrote, On 28.03.2006 20:18:
> On 3/28/06, *Ahmet* <corsairsoft(at)gmail(dot)com
> <mailto:corsairsoft(at)gmail(dot)com>> wrote:
>
> sembolik olarak group by id kulanabilirsiniz
>
> veya
>
> PHP ile yazıyorsanız pg_num_rows() fonksiyonunu kullanabilirsiniz
> http://tr2.php.net/manual/en/function.pg-num-rows.php
> <http://tr2.php.net/manual/en/function.pg-num-rows.php>
>
>
> Özür dilerim. Umduğum çözüm, bunlardan hiçbiri değil. PHP örneğindeki
> yöntem, ustaca bir yöntem değil. Zira, o yöntemde, örneğin 1 milyon
> kayıt varsa, bu kayıtların tamamı VTS tarafından PHP'ye gönderiliyor.
> PHP ise yalnızca sayıyor. Bu yöntem, hız ve bellek kaybı manasına
> geliyor. İlave olarak, ben LIMIT OFFSET kullanacağımda, PHP yöntemi
> "kafadan" başarısız olacaktır.
>
> Her alanın adını GROUP BY ifadesine dahil etme yöntemi ise, hem bir
> çok karmaşık SQL ifadesinin hem daha da karmaşıklaşması, hem
> performans kaybına neden olması, hem de bazı durumlarda tamamen
> yetersiz kalması anlamına geliyor.
>
> Acaba, başka bir yöntem mümkün müdür? Önerisi olan var mıdır? Mesela
> benim aklıma, şöyle bir Saklı Yordam geliştirmek bile geliyor:
>
> sayfalama(sql, limit, offset)
>
> bu yordam, geriye, hem kayıt kümesini döndürür, hem de bu kayıt
> kümesine yeni bir sütun ekleyip, bu sütunun, kayıt sayısını içermesini
> sağlayabilir. Fakat bu yöntem de biraz uç ve tuhaf bir yöntem gibi
> geliyor bana.
>
> Nasıl bir amaç için böyle bir şeye ihtiyaç duyduğumu anlatabilmek
> için, bir örnek sayfa göstermek istiyorum:
>
> www [nokta] antalya [nokta] com.tr/tr/guncel/etkinlik/index.cfm
> <http://com.tr/tr/guncel/etkinlik/index.cfm>
>
> Bu sayfadaki örnekte, belirtilen ölçütlere uyan ne kadar kayıt
> bulunduysa tümü Uygulama Sunucusu'na döndürülüyor. Uygulama
> Sunucusu'ndaki kodlar da kayıt sayısını sayıp, sayfanın sol alt
> tarafında görüntülüyor. Ardından, kayıtlar arasında döngü yapmak
> suretiyle, talep edilen aralıktaki kayıtları görüntülüyor. Fakat, arz
> ettiğim gibi bu yöntem; ağ trafiğini artırmak, bellek kaybı, işlem
> süresi uzaması vb bir dizi sorunu beraberinde getiriyor.
>
> Umarım, ızdırabımı anlatabilmişimdir.
>
> --
> Saygılarımla,
> Eşref Atak