Grupa SQL według miesiąca

Grupa SQL według miesiąca

Problem

Załóżmy, że mamy tabelę zawierającą informacje o pracownikach, jak pokazano poniżej:

Celem jest zamówienie powyższych danych na podstawie miesiąca rozpoczęcia. Jest to opisane w kolumnie start_date.

Jak możemy podejść do takiego problemu?

Rozwiązanie 1 - grupa według kolumny (ekstrakt)

Pierwszą metodą, którą możemy użyć, jest funkcja Extract () w SQL. Pozwala nam wyodrębniać określone części z obiektu daty.

Dlatego możemy użyć funkcji Extract () do wyodrębnienia miesiąca daty i zgrupowania danych z wynikowej wartości.

Przykładowe zapytanie jest takie, jak pokazano:

WYBIERAĆ
Max (start_date) max (start_date)
Od pracowników
Grupa według ekstraktu (miesiąc od start_date);

Powyższe powinno pogrupować dane według miesięcy i zwrócić datę maksymalną w każdym miesiącu grupa:

Rozwiązanie 2 - Format daty

Możesz także użyć funkcji date_format do grupowania danych według nazwy miesiąca. Przykładem jest jak pokazano:

Wybierz date_format („miesiąc”, start_date) jako start_month,
Liczyć (id) jako identyfikator
Od pracowników
Grupa według date_format („miesiąc”, start_date);

Powinno to pogrupować dane na podstawie nazw miesięcy i zastosować funkcję liczby.

Dziękuje za przeczytanie!!