bitstring ya da numerik tur uzerinde "bit count" alabilmek

From: "Kerem Hadimli" <wastiee(at)gmail(dot)com>
To: pgsql-tr-genel(at)postgresql(dot)org
Subject: bitstring ya da numerik tur uzerinde "bit count" alabilmek
Date: 2006-12-04 14:27:30
Message-ID: 19078af0612040627h3f79475fj9a4f0d5ec575272f@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-tr-genel

Merhaba,
Gelistirmekte oldugum yazilimda, iki verinin belli 'flag'lere gore
uyumuna yonelik siralama yapmak istiyorum.
Flag dedigim sey boolean ve sayica 200-300 u bulabiliyor.

Yapmak istedigim sey, elimdeki bir tane veriye (300 tane flag iceren)
en uygun verileri siralatmak, sadece TRUE olanlar yonunden.

Test asamasi icin, konseptin kalaninin netlesmesi icin, 300 tane
boolean kolon kullanip,
select'lerde ORDER BY CAST(a1 AS integer) + CAST(a2 AS integer) +
CAST(a6 AS integer) DESC gibisinden bir sekilde idare ettim (TRUE
olmasini aradigim kolonlari ORDER BY'a ekleyerek), fakat veri
buyuklugu acisindan production seviyesinde bu sekilde kullanilmasi
imkansiz.

Yapmak istedigim sey, 2 tane bitstring'i AND'ledikten sonra, sonuc
bitstring'inde kac adet 1 oldugunu almak, ve buna gore siralama yapmak
(ayni zamanda bu degeri de ogrenmek tabi ki), ozetle 0011110101 icin 5
dondurecek bir fonksiyon.

bunun en ideal yolu nedir, pgSQL ile bir fonksiyon yazmak pek verimli
olmaz gibi gorundu, c ile fonksiyon mu eklemeli (gordugum kadariyla
cok karmasik bir APIsi yok postgresql'in, yine de gozatmaktan oteye
gecmedim, belki bitstringler degil ama, 32 bitlik integerlarla calisan
bir fonksiyon ekleyip, veritabanimi buna gore olusturabilirim 10 adet
32 bitlik integer'da tutacak gibi), indekslere guvenip su anki haliyle
mi birakmali (cok fazla sayida kolon oldugu icin pek verimli olmaz
diye dusunuyorum), hazir boyle bir sey var midir, ya da baska
onerileriniz bu ihtiyaca yonelik?

tesekkurler,
Kerem HADIMLI

Responses

Browse pgsql-tr-genel by date

  From Date Subject
Next Message Volkan YAZICI 2006-12-04 15:03:20 Re: bitstring ya da numerik tur uzerinde "bit count" alabilmek
Previous Message Volkan YAZICI 2006-12-04 13:40:40 Re: mysql_insert_id eşdeniğ