Grupa SQL według tygodnia

Grupa SQL według tygodnia
Grupa według klauzuli w SQL pozwala na agregowanie zestawu wierszy, które mają tę samą wartość w jedną jednostkę/grupę. Pomyśl o tym jako o sposobie podsumowania zestawu wierszy o podobnych wartościach w jedną partycję.

Na przykład możemy podzielić wszystkie filmy z tego samego kanału YouTube do jednej grupy. Często znajdziesz grupę według klauzuli używanej w połączeniu z innymi funkcjami agregowanymi, takimi jak maks., Suma, avg itp.

Chociaż grupa według klauzuli jest oczywista, nie może być łatwa, gdy trzeba grupować dane w ciągu tygodnia.

Grupa SQL według tygodnia

Załóżmy, że masz tabelę zawierającą informacje pokazane poniżej:

Utwórz pracowników tabeli (
ID szeregowy klucz podstawowy,
Full_name Varchar (255),
e -mail varchar (255),
Departament Varchar (100),
data start_date,
Aktywny bool,
kategoria varchar (50)
);
Wstaw do pracowników (Full_name, e -mail, dział, start_date, aktywny, kategoria)
Wartości
(„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”, „Smitty_wilson@przykład.net ', „baza danych programista”, „2016-12-23”, true, „dev-db1”),
(„Barbara Moore”, „[email protected] „,„ Dewabase 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-ups1”),
(„Marial Anderson”, „Anderson@przykład.Org ', „DevOps Engineer”, „2015-12-23”, true, „dev-ups1”),
(„Nancy Thomas”, „[email protected] ', „DevOps Engineer”, „2014-12-23”, false, „dev-ups1”);

Aby zgrupować powyższe dane na podstawie tygodnia, możemy użyć funkcji wyciągu w SQL. Ekstrakt () pozwala wyodrębnić określoną część daty.

Składnia jest jak pokazana:

Wyciąg (część od daty);

Dlatego, aby wyodrębnić tydzień z daty, możemy przekazać parametr części jako tydzień, a następnie datę literał.

Rozważ przykład poniżej:

Wybierz ekstrakt (tydzień z znacznika czasu 2022-04-08 15:57:54.937148+03 ');

Uwaga: Powyższy przykład jest zilustrowany za pomocą PostgreSQL. W niektórych bazach danych nie musisz określać klauzuli z.

Powyższe zapytanie powinno powrócić:

WYCIĄG
---------
14

Stąd powyższy znacznik czasu pochodzi z 14 tygodnia roku.

Możemy przekazać tę wartość grupie według klauzuli, jak pokazano:

WYBIERAĆ
Ekstrakt (tydzień od start_date) jako tydzień,
Liczyć (id) jako identyfikator
Od pracowników
Grupa według ekstraktu (tydzień od start_date);

To powinno powrócić:

Zamknięcie

Ten przewodnik pokazał, jak korzystać z grupy według klauzuli w SQL i funkcji wyciągu do rekordów grupowych na podstawie tygodnia.