Dzień dobry wszystkim forumowiczom.
Mam na imię Rysiek i jestem początkującym maturalnym bazodanistą. Borykam się z ogromnym problemem, który eliminuje mnie z gry o punkty na maturze i nie mogę znaleźć odpowiedzi w internecie:
funckja obliczająca średnią AVG podaje mi tylko zaokrąglony do cyfry jedności wynik, nie jestem w stanie odczytać dokładnej liczby, a tym bardziej przybliżyć do dowolnej ilości miejsc po przecinku.
Czy ktoś miał podobny problem? Jak coś takiego rozwiązać?
Reinstalacja nie pomaga, system operacyjny też nie wpływa na problem, grzebałem też trochę w opcjach, ale nie widzę, poza tym nie chcę tracić dużo czasu... Pojawia się ten problem zarówno na Windowsie i na Linuksie. Microsoft Office nie sprawia tego problemu, ale nie o tym w sumie mowa.
Pozdrawiam wszystkich i czekam niecierpliwie na odpowiedź
funkcja AVG podaje tylko zaokrągloną średnią
funkcja AVG podaje tylko zaokrągloną średnią
Libre Office 5.4.5.1
Ubuntu 17.10
Ubuntu 17.10
Re: funkcja AVG podaje tylko zaokrągloną średnią
Szybki eksperyment porównawczy zachowania PostgreSQLa i HSQLDB1.8 wbudowanego w Base pokazał że
avg z wyrażeń całkowitoliczbowych w Postgresie jest typu numeric;
avg w hsql jest typu tego co uśredniane wyrażenie.
Tyle doraźny test. Wyczerpująca odpowiedź wymaga zajrzenia do dokumentacji standardów SQL oraz systemów: http://hsqldb.org/doc/1.8/guide, http://hsqldb.org/doc/2.0/guide.
HSQL:
Tak więc kolumna avg(pole typu integer) przekazuje daną typu integer, a avg z kolumny decimal(4,2) jest typu decimal(4,2). Jawna konwersja typu pomaga, np. avg(cast("a" as double)) daje wynik double.
Dla porównania, http://www.postgresql.org/docs, którego implementacja sql jest dość bliska standardu, mówi że
Btw., jak widać wyjaśnienie da się znaleźć w internecie co nie znaczy, że znajdziemy je poprzez wyszukiwarkę ...
avg z wyrażeń całkowitoliczbowych w Postgresie jest typu numeric;
avg w hsql jest typu tego co uśredniane wyrażenie.
Tyle doraźny test. Wyczerpująca odpowiedź wymaga zajrzenia do dokumentacji standardów SQL oraz systemów: http://hsqldb.org/doc/1.8/guide, http://hsqldb.org/doc/2.0/guide.
HSQL:
(http://hsqldb.org/doc/1.8/guide/ch09.html#N1251E)The returned value type for COUNT is INTEGER, for MIN, MAX and AVG it is the same type as the column [...]
Tak więc kolumna avg(pole typu integer) przekazuje daną typu integer, a avg z kolumny decimal(4,2) jest typu decimal(4,2). Jawna konwersja typu pomaga, np. avg(cast("a" as double)) daje wynik double.
Dla porównania, http://www.postgresql.org/docs, którego implementacja sql jest dość bliska standardu, mówi że
(https://www.postgresql.org/docs/9.3/sta ... egate.html)Function: avg(expression)
Argument type(s): smallint, int, bigint, real, double precision, numeric, or interval
Return type: numeric for any integer-type argument, double precision for a floating-point argument, otherwise the same as the argument data type
Description: the average (arithmetic mean) of all input values
Btw., jak widać wyjaśnienie da się znaleźć w internecie co nie znaczy, że znajdziemy je poprzez wyszukiwarkę ...
Co proszę? to znaczy kto powinien go stracić w Twoim imieniu?poza tym nie chcę tracić dużo czasu
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: funkcja AVG podaje tylko zaokrągloną średnią
Dziękuję za pomoc. Tu padło wiele celnych spostrzeżeń, które z pewnością przydadzą mi się w rozwiązywaniu podobnych niejasności w przyszłości.
Jeszcze raz dziękuję. Trafna i merytoryczna odpowiedź, temat został wyjaśniony
Życzę miłego dnia!
Wyczerpująca odpowiedź wymaga zajrzenia do dokumentacji standardów SQL
Istotnie, jawna konwersja typów pomogła, jest to strzał w dziesiątkę.Btw., jak widać wyjaśnienie da się znaleźć w internecie co nie znaczy, że znajdziemy je poprzez wyszukiwarkę ...
Zabrzmiało to niemiło w moim imieniu, przepraszam za sprawienie kłopotu. Chodziło mi o to, że męczyłbym się poszukując magicznych ustawień w programie Libre Office lub bezskutecznie wpisując frazy "AVG nie działa" w wyszukiwarkę. Liczyłem na dłoń osoby bardziej doświadczonej, która potrafi lepiej podejść do problemu.Co proszę? to znaczy kto powinien go stracić w Twoim imieniu?
Jeszcze raz dziękuję. Trafna i merytoryczna odpowiedź, temat został wyjaśniony
Życzę miłego dnia!
Libre Office 5.4.5.1
Ubuntu 17.10
Ubuntu 17.10
Re: funkcja AVG podaje tylko zaokrągloną średnią
Kod: Zaznacz cały
kto powinien go stracić w Twoim imieniu?
Jesteśmy tu, bo chcemy pomóc, jeśli potrafimy. Temat był dobrze postawiony, więc nie ma problemu. Tyko śmiesznie zabrzmiało.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)