Rezultat AVG SQL funkcije nad celobrojnim tipom
|
|
|||
U tabeli su upisani podaci o ocenama. Realizacijom sql komande SELECT AVG( "Ocena" ) FROM "Ocene" gde je polje Ocena tipa Tiny int dobija se rezultat 3 (očekivana vrednost je 3,55).
Da li je moguće dobiti rezultat u real formatu sa celobrojnim vrednostima za podatke? |
|||
|
|||
Odgovor zavisi od toga na koju bazu se povezujete iz programa Bejz.
Pretpostavljam da koristite ugrađenu bazu koja podatke smešta u .odb datoteku. Reč je o staroj verziji baze HSQLDB, a izvod iz njenog priručnika kaže: Citat:The returned value type for COUNT is INTEGER, for MIN, MAX and AVG it is the same type as the column, for SOME and EVERY it is BOOLEAN. U narednim izdanjima Libreofisa stiže i podrška za Firebird kao format ugrađene baze podataka. Kada bi mogli da koristimo novu verziju HSQLDB sa programom Libreofis Bejz mogli bi da zadamo svojstvo SQL AVG SCALE koje dozvoljava da rezultat agregatne funkcije bude iskazan u većoj preciznosti. Iako moram da dodam da ne preporučujem hak koji ću sada opisati, zabavno je izvesti ga. HSQLDB koji dolazi uz Libreofis je smešten u datoteci hsqldb.jar unutar instalacione putanje (./program/classes/hsqldb.jar). Sa sajta http://www.hsqldb.org možemo da preuzmemo najnovije izdanje (u arhivi hsqldb-2.3.1.zip JAR datoteka se nalazi na putanji /hsqldb-2.3.1/hsqldb/lib/. Preimenujmo staru JAR datoteku unutar Libreofis instalacije koju ćemo tako da sačuvamo za slučaj da hak ne proradi, a na njeno staro mesto treba da postavimo novu JAR datoteku iz arhive. Sada treba da postavimo svojstvo u bazi koju ćemo koristiti sa novom verzijom HSQLDB kroz Libreofis Bejz. U programu ne postoji opcija za zadavanje svojstva, pa i to moramo zaobilazno. ODB datoteka baze je ZIP arhiva, pa je dovoljno da joj promenimo ekstenziju iz .odb u .zip da zavirimo unutra. U arhivi pronalazimo fasciklu database i u njoj datoteku pod nazivom script. To je struktura naše baze. Otvorimo ovu datoteku u uređivaču teksta (Wordpad, Notepad+, gedit, emacs...) i u drugi red dodamo naše svojstvo: SET DATABASE SQL AVG SCALE 2 Sačuvamo script datoteku, ubacimo je preko stare unutar arhive i arhivu ponovo zapakujemo, menjajući joj ekstenziju iz .zip u .odb. Ako otvorimo datoteku u Libreofis Bejzu AVG agregatna funkcija nad celobrojnim tipovima će raditi sa dva decimalna mesta. Pošto ovo verovatno zvuči neverovatno da zapravo radi, prilažem izmenjenu datoteku i snimak ekrana kao potvrdu da hak može da se izvede Ukoliko koristite Libreofis Bejz da se povežete na neku drugu bazu podataka (MySQL, PostgreSQL,...) tada u radu sa bazom važe ograničenja tog sistema baze podataka. Libreofis Bejz je samo klijentski program koji dodatno omogućava izradu obrazaca i izveštaja. |
|||
|
|||
Хвала.
|
|||