Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Extragerea de informatii statistice din baze de date

fox pro



+ Font mai mare | - Font mai mic



Extragerea de informatii statistice din baze de date

Una dintre cerintele principale ale lucrului cu baze de date este sa putem extrage rapid informatii cu caracter statistic despre inregistrarile bazei de date respective. Pentru a rezolva aceasta problema, FOXPRO ne pune la dispozitie cateva comenzi si functii foarte puternice:



COUNT

sintaxa: COUNT [<domeniu>] [FOR <conditie>] [TO <var>]

efect: Numara inregistrarile dintr-un domeniu specificat, care indeplinesc o anumita conditie.

Parametri:

<domeniu> : (cu valorile cunoscute, ALL, NEXT <expN>, RECORD <expN>, REST). Vor fi numarate numai inregistrarile din domeniul specificat prin una dintre valorile posibile. Valoarea implicita a domeniului pentru COUNT este ALL (toate inregistrarile).

FOR <conditie> : Sunt numarate numai inregistrarile care satisfac conditia precizata; in acest mod putem filtra inregistrarile, extragand numai informatiile care ne intereseaza.

TO <var> : Daca este nevoie, numarul de inregistrari identificat este memorat intr-o variabila creata special in acest scop. Aceasta variabila poate fi creata anterior, sau chiar in momentul lansarii comenzii.

Exemplu: In baza de date PERS.DBF:

Pentru a numara toate inregistrarile:

count

Pentru a vedea, de exemplu, cati studenti din Bacau au fost internati:

count for DOM_JUD = "BC" .and. OCUPATIE = 2

Pentru a vedea cati pacienti sufereau de viroza respiratorie:

count for DIAG_TRIM = 5

CALCULATE

sintaxa: CALCULATE <lista expr> [<domeniu>][FOR <conditie>] [TO <lista var>]

efect Realizeaza operatii statistice si financiare asupra campurilor bazei de date sau asupra unor expresii care cuprind campurile bazei de date.   

<lista expr> : Lista de expresii poate contine orice combinatie a functiilor urmatoare:

AVG(<expN>): calculeaza media aritmetica a expresiei numerice    <expN>, care poate contine campuri numerice ale bazei de date curenta.

CNT( ): returneaza numarul de inregistrari din baza de date (sau din domeniul precizat).

MAX(<expr>): returneaza valoarea cea mai mare a expresiei precizate <expr>.

MIN(<expr>): returneaza valoarea cea mai mica a expresiei precizate <expr>.

STD(<expN>): calculeaza deviatia standard a expresiei numerice <expN> (deviatia standard indicand masura in care valorile individuale ale expresiei pentru fiecare inregistrare sunt diferite de valoarea medie a expresiei, calculata pentru toate inregistrarile dintr-un domeniu precizat).

SUM(<expN>): calculeaza suma tuturor valorilor expresiei numerice <expN>.

VAR(<expN>): calculeaza varianta expresiei numerice <expN> (radacina patrata din deviatia standard).

Daca dorim sa folosim mai multe functii in aceeasi comanda. Trebuie sa le separam prin virgula in lista de expresii. Ele sunt specifice numai comenzii CALCULATE, si nu pot fi folosite independent.

Parametri:

<domeniu>

FOR <conditie>

TO <lista var>

Acesti parametri au aceeasi semnificatie ca in comanda COUNT.

Exemplu: In baza de date PERS.DBF nu avem decat un singur camp numeric, si anume cel folosit pentru memorarea numarului buletinului de identitate, BI_NUMAR; desigur, nu au nici un fel de semnificatie calculele statistice asupra acestui camp; de aceea, vom face in schimb cateva calcule simple legate de datele de nastere ale pacientilor.

Pentru a determina pacientul cel mai tanar si, respectiv, cel mai batran din baza de date:

calculate max(YEAR(DATA_N)), min(YEAR(DATA_N))

Pentru a determina pacientul cel mai tanar din Iasi:

calculate max(YEAR(DATA_N)) for DOM_LOC = "IASI"

MAX( )

sintaxa: MAX(<expr1>, <expr2> [, <expr3> ])

efect: Evalueaza o lista de expresii si returneaza expresia cu valoarea cea mai mare (cel mai mare cod ASCII sau valoare numerica, ori cea mai recenta data calendaristica) dintr-o lista de expresii de tip sir de caractere, expresii numerice sau de tip data calendaristica. Toate expresiile din lista trebuie sa aiba in mod obligatoriu acelasi tip (Character, Numeric sau Date).

<expr1>, <expr2> [, <expr3> ] : lista de expresii dintre care calculam valoarea maxima.



MIN( )

sintaxa: MIN(<expr1>, <expr2> [, <expr3> ])

efect: Evalueaza o lista de expresii si returneaza expresia cu valoarea cea mai mica (cel mai mic cod ASCII sau valoare numerica, ori cea mai veche data calendaristica) dintr-o lista de expresii de tip sir de caractere, expresii numerice sau de tip data calendaristica. Toate expresiile din lista trebuie sa aiba in mod obligatoriu acelasi tip (Character, Numeric sau Date).

<expr1>, <expr2> [, <expr3> ] : lista de expresii dintre care calculam valoarea minima.

SUM

sintaxa: SUM [<lista expr>] [<domeniu>] [FOR <conditie>]

[TO < lista var>]

efect: Sumeaza toate valorile din campurile numerice specificate ale bazei de date curente.

Parametri:

<lista expr> : Vor fi indicate unul sau mai multe campuri ale caror valori dorim sa le sumam, separate intre ele prin virgule. Daca acest parametru lipseste, vor fi sumate valorile tuturor campurilor numerice din baza de date curenta. De asemeni, pot fi folosite in acest parametru si variabile de memorie sau constante.

<domeniu>

FOR <conditie>

TO <lista var>

Acesti parametri au aceeasi semnificatie ca in comanda COUNT.

Articolele care vor fi sumate sunt parcurse secvential.

Exemplu: In baza de date PERS.DBF:

Pentru a determina suma anilor de nastere ai pacientilor care sunt studenti:

sum (YEAR(DATA_N)) for OCUPATIE = 2

AVERAGE

sintaxa: AVERAGE [<lista expr>] [<domeniu>] [FOR <conditie>]

[TO <lista var>]

efect: Calculeaza media aritmetica a valorilor din campurile numerice specificate ale bazei de date curente.

Parametri:

<lista expr> : Vor fi indicate expresiile a caror medie aritmetica dorim sa o determinam. Aceasta lista poate contine campuri ale bazei de date, separate prin virgule, sau expresii numerice care sa cuprinda campurile bazei de date. Daca parametrul lipseste, va fi calculata media aritmetica a tuturor valorilor campurilor numerice ale bazei de date curente.

<domeniu>

FOR <conditie>

TO <lista var>

Acesti parametri au aceeasi semnificatie ca in comanda COUNT.

Exemplu: In baza de date PERS.DBF:

Pentru a determina valoarea medie a anilor de nastere ai pacientilor care sunt studenti:

average (YEAR(DATA_N)) for OCUPATIE = 2

TOTAL

sintaxa: TOTAL TO <nume BD> ON <nume camp>

[FIELDS <lista campuri>] [<domeniu>] [FOR <conditie>]

efect: Calculeaza sume partiale, pe grupuri de articole care au aceeasi valoare intr-un camp specificat. Fisierul sursa trebuie sa fie indexat sau sortat.

Parametri:

<nume BD>: Se va specifica numele bazei de date care va contine totalurile. Structura acestei baze de date poate fi diferita de cea a bazei de date din care se aleg inregistrarile care se totalizeaza, dar in mod obligatoriu trebuie sa contina campul cheie, pe care se face gruparea articolelor. Daca baza de date rezultat nu exista, va fi creata in momentul lansarii comenzii.

<nume camp>: Indica numele campului - cheie    dupa care sunt grupate totalurile. Baza de date trebuie sa fie in mod obligatoriu sortata sau indexata dupa acest camp.

[FIELDS <lista campuri>]: Se vor preciza campurile care vor fi totalizate; aceste campuri vor fi separate prin virgule. Daca aceasta clauza este omisa, vor fi totalizate implicit toate campurile numerice.

[<domeniu>]

[FOR <conditie>]

Acesti parametri au aceeasi semnificatie ca in comanda COUNT (sunt folositi pentru a selecta numai anumite inregistrari pe care urmeaza sa le totalizam).





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1076
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved