„Access“ sąlyga GROUP BY nurodytame laukų sąraše į vieną įrašą sujungia įrašus, turinčius identiškas reikšmes. Kiekvienam įrašui bus sukuriama suvestinė reikšmė, jeigu į sakinį SELECT įtrauksite SQL agregavimo funkciją, pvz., Sum arba Count.
Sintaksė
SELECT laukų_sąrašas
FROM lentelė WHERE kriterijai [GROUP BY grupės_laukų_sąrašas]Sakinys SELECT su sąlyga GROUP BY yra sudarytas iš trijų dalių:
Dalis |
Aprašas |
laukų_sąrašas |
Nuskaitomo lauko arba laukų pavadinimai su visais lauko pavadinimo pseudonimais, SQL agregavimo funkcijos, atrankos taisyklių sąlygos (ALL, DISTINCT, DISTINCTROW arba TOP) arba kitos sakinio SELECT parinktys. |
lentelė |
Lentelės, iš kurios nuskaitomi įrašai, pavadinimas. |
kriterijai |
Atrankos kriterijai. Jei sakinyje yra sąlyga WHERE, Microsoft Access duomenų bazės modulis, pritaikęs įrašams sąlygas WHERE, grupuoja reikšmes. |
grupės_laukų_sąrašas |
Iki 10 laukų, naudojamų grupės įrašams, pavadinimai. Laukų pavadinimų rūšiavimas grupės_laukų_sąraše nustato grupavimo lygius nuo aukščiausio iki žemiausio. |
Pastabos
Sąlyga GROUP BY yra pasirinktinė.
Suvestinės reikšmės praleidžiamos, jeigu sakinyje SELECT nėra SQL agregavimo funkcijos.
Neapibrėžtos reikšmės GROUP BY laukuose yra grupuojamos ir nepraleidžiamos. Tačiau neapibrėžtos reikšmės nėra įvertinamos jokioje SQL agregavimo funkcijoje.
Naudokite sąlygą WHERE, jei nenorite įtraukti eilučių į grupavimą, o sąlygą HAVING naudokite sugrupuotiems įrašams filtruoti.
Jeigu laukas, esantis laukų GROUP BY sąraše neturi Memo arba OLE objekto duomenų tipų, jis gali nurodyti bet kurį lentelės lauką, surašytą sąlygoje FROM, net jei tas laukas nėra įtrauktas į sakinį SELECT, su sąlyga, kad sakinys SELECT įtraukia bent vieną SQL agregavimo funkciją. „Microsoft Access“ duomenų bazės variklis negali grupuoti Memo arba OLE objekto laukų.
Visi laukai, esantys SELECT lauke, turi būti įtraukti sąlygoje GROUP BY arba būti įtraukti kaip SQL agregavimo funkcijos argumentai.