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
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ğ |