SQL Group etter uke

SQL Group etter uke
Gruppen etter klausul i SQL lar deg samle et sett med rader som har samme verdi til en enkelt enhet/gruppe. Tenk på det som en måte å oppsummere et sett med rader med lignende verdier i en partisjon.

For eksempel kan vi kategorisere alle videoene fra samme YouTube -kanal i en enkelt gruppe. Du vil ofte finne gruppen etter klausul som brukes i forbindelse med andre samlede funksjoner som Max, Sum, AVG, etc.

Selv om gruppen BY-klausulen er selvforklarende, kan det ikke være lett når du trenger å gruppere data innen uken.

SQL Group etter uke

Anta at du har en tabell som inneholder informasjonen vist nedenfor:

Lag tabellansatte (
ID Seriell primærnøkkel,
full_name varchar (255),
E -post varchar (255),
Avdeling varchar (100),
start_date dato,
aktiv bool,
Kategori varchar (50)
);
Sett inn i ansatte (full_navn, e -post, avdeling, start_date, aktiv, kategori)
Verdier
('Meghan Edwards', '[email protected] ',' Game Development ',' 2016-06-22 ', True,' Dev-G1 '),
('Sam Davis', '[email protected] ',' Game Development ',' 2014-01-04 ', False,' Dev-G1 '),
('Taylor Miller', '[email protected] ',' Game Development ',' 2019-10-06 ', True,' Dev-G1 '),
('Wilson Smitty', '[email protected] ',' Database Developer ',' 2016-12-23 ', True,' Dev-DB1 '),
('Barbara Moore', '[email protected] ',' Database Developer ',' 2015-12-23 ', True,' DEV-DB1 '),
('Raj Chan', '[email protected] ',' Database Developer ',' 2017-12-23 ', False,' Dev-DB1 '),
('Susan Brown', '[email protected] ',' DevOps Engineer ',' 2011-12-23 ', True,' Dev-ops1 '),
('Marial Anderson', '[email protected] ',' Devops Engineer ',' 2015-12-23 ', True,' Dev-ops1 '),
('Nancy Thomas', '[email protected] ',' DevOps Engineer ',' 2014-12-23 ', False,' Dev-ops1 ');

For å gruppere dataene ovenfor basert på uken, kan vi bruke ekstraktfunksjonen i SQL. Ekstraktet () lar deg hente ut en bestemt del av en dato.

Syntaksen er som vist:

Extract (del fra dato);

For å trekke ut uken fra en dato, kan vi derfor passere delparameteren som uke etterfulgt av datoen bokstavelig.

Tenk på et eksempel nedenfor:

Velg utdrag (uke fra tidsstempel '2022-04-08 15:57:54.937148+03 ');

Merk: eksemplet ovenfor er illustrert ved hjelp av PostgreSQL. I noen databaser trenger du ikke å spesifisere FRA -leddet.

Spørringen ovenfor skal returnere:

EKSTRAKT
---------
14

Derfor er tidsstemplet ovenfor fra året 14 i året.

Vi kan gi denne verdien til gruppen BY -klausul som vist:

PLUKKE UT
Extract (uke fra start_date) som uke,
Telle (id) som ID
Fra ansatte
Gruppe etter utdrag (uke fra start_date);

Dette skulle komme tilbake:

Lukking

Denne guiden viste deg hvordan du bruker gruppen BY -klausul i SQL og Extract -funksjonen til gruppeposter basert på uken.