Cum grupul de MySQL în stivă overflow în limba rusă

întrebarea sql GROUP BY.

Luați în considerare gruparea de o singură coloană. exemplu:

Aceasta este, în coloana DEPARTMENT_ID a căutat unic (cum ar fi DISTINCT) valoarea carte, de exemplu, 30, atunci toate rândurile sunt căutate, în cazul în care departamentul de 30 menționat în acest tabel, rândurile acestor valori sunt preluate din coloana SALARIUL și însumat (sumă). Apoi, el va căuta un alt cumpărător, și totul se repetă. Ca rezultat, am obține mult mai luat toți banii fiecare departament.

Nu înțeleg timp: am 6 linii, în care există o coloană cu o valoare DEPARTMENT_ID 30. Care dintre liniile merg la tablitsu- SELECT și de ce? Adică, angajații de masă au fost șase rânduri DEPARTMENT_ID 30, iar table- SELECT această linie este doar una. Cum a funcționat acest grup?

set 05 decembrie '16, la 09:35

în cazul în care este scris că acesta este ales prima linie? Nu m-am întâlnit - Dimon 05 decembrie '16, la 09:53

Multumesc pentru raspuns - Dimon 05 decembrie '16, la 09:57

@Mike +1 despre alte DBMS. În general, comportamentul ciudat al MySQL, prima dată așteptați despre el citi: D - Teran 5 '16 decembrie la 10:18

Eșantionul după grup prin faptul că nu obține nici una din liniile originale. La ieșirea unității - cantitatea de date în secțiunea din dreapta. Pentru coloane, care, evident, nu a aplicat nicio funcții de grup (cum ar fi suma ()), funcția va fi aplicată „disponibilă mai întâi“. Și numai în MySQL, și numai atunci când alimentat de pe opțiunea ONLY_FULL_GROUP_BY. În altă ordine de interogare a bazei de date, în care cel puțin o coloană care nu este o tăietură în grupul specificat de „uitat“ pentru a aplica funcția de grup va emite o eroare.

Cum grupul de poate estima în Excel. datele de înregistrare de pe foaia, genul de domenii care trebuie să fie grup de. Citirea datelor sortate într-un rând, în orice caz, atunci când valoarea în rândul următor din coloanele specificate în grupul de valori diferite de cele anterioare - se introduce un nou rând, copiați grupul de valori de coloane. și poziția de repaus formulele ca SUM (), prin care un grup de celule este rezumată. grup rezultat prin - acesta este ultimul recordul inserat. Baza de date are aproximativ același algoritm - primele soiuri, și apoi adaugă același record consecutiv.

Adauga despre MySQL - este încă prea vag se referă la acest lucru, încercați să folosiți întotdeauna în mod explicit funcțiile de grup pentru toate coloanele care au cel mai mult pentru a înțelege ceea ce ei vor fi, pentru „prima disponibilă“ decât să nu standardizate și poate varia de la o versiune la alta și în funcție de locația fizică a înregistrărilor pe disc plan de execuție și de interogare.

Răspuns 5 '16 decembrie la 10:41

articole similare