Składnia
WYBIERAĆMożemy również użyć więcej niż jednej kolumny w poleceniu.
Grupa według wdrażania klauzuli
Aby wyjaśnić pojęcie grupy według klauzuli, rozważ poniższą tabelę, nazwany klient. Ta relacja jest tworzona tak, aby zawierać pensje każdego klienta.
>> Wybierz * z klienta;Zastosujemy grupę według klauzuli za pomocą „wynagrodzenia” z pojedynczą kolumną. Jedną rzeczą, o której powinienem wspomnieć, że kolumna, której używamy w instrukcji Select, musi być wymieniona w grupie według klauzuli. W przeciwnym razie spowoduje to błąd, a polecenie nie zostanie wykonane.
>> Wybierz wynagrodzenie z grupy klientów według wynagrodzenia;Widać, że wynikowy tabela pokazuje, że polecenie zgrupowało te wiersze, które mają tę samą pensję.
Teraz zastosowaliśmy tę klauzulę na dwóch kolumnach za pomocą wbudowanej liczby funkcji (), która zlicza liczbę wierszy zastosowanych przez instrukcję Select, a następnie grupa według klauzuli jest stosowana do filtrowania wierszy poprzez łączenie tych samych wierszy wynagrodzeń. Możesz zobaczyć, że dwie kolumny, które są w instrukcji SELECT, są również używane w klauzuli grupowej.
>> Wybierz wynagrodzenie, liczba (wynagrodzenie) z grupy klientów według wynagrodzenia;Grupa po godziny
Utwórz tabelę, aby zademonstrować pojęcie grupy według klauzuli na relacji postgres. Tabela o nazwie Class_Time jest tworzona z identyfikatorem kolumn, podmiotu i c_period. Zarówno identyfikator, jak i podmiot mają zmienną typu danych liczb całkowitych i varchar, a trzecia kolumna zawiera typ danych wbudowanej funkcji czasu, ponieważ musimy zastosować grupę według klauzuli na tabeli, aby przez cały czas pobierać porcję godziny oświadczenie.
>> Utwórz tabelę klas_time (ID INTEGER, TETS VARCHAR (10), C_PERIOD Time);Po utworzeniu tabeli wstawymy dane do wierszy za pomocą instrukcji Insert. W kolumnie C_Period dodaliśmy czas, używając standardowego formatu czasu „HH: MM: SS”, który należy dołączyć w odwróconych śpiach. Aby utworzyć grupę klauzulową, pracując nad tą relacją, musimy wprowadzić dane, aby niektóre wiersze w kolumnie C_Period pasują do siebie, aby te wiersze były łatwo grupowane.
>> Wstaw do klasy_time (id, podmiot, C_Period) Wartości (2, „Maths”, „03:06:27”), (3, „English”, '11: 20: 00 '), (4,' S 'S' S 'S' S 'S' S.Studies ', '09: 28: 55'), (5, „Art”, '11: 30: 00 '), (6, „Persian”, '00: 53: 06');Wkłada się 6 wierszy. Przeglądamy wstawione dane za pomocą instrukcji Select.
>> Wybierz * z klasy_time;Przykład 1
Aby kontynuować wdrażanie grupy według klauzuli o godzinie czasu, zastosujemy polecenie Select na tabeli. W tym zapytaniu używana jest funkcja date_trunc. To nie jest funkcja utworzona przez użytkownika, ale jest już obecna w Postgres, która ma być używana jako funkcja wbudowana. Zajmie to słowo kluczowe „godziny”, ponieważ zajmujemy. Wynikająca wartość z tej wbudowanej funkcji za pomocą polecenia Select będzie przechodzi przez funkcję Count (*). Policzy to wszystkie wynikające z nich wiersze, a następnie wszystkie wiersze zostaną zgrupowane.
>> Wybierz date_trunc („godzinę”, c_period), Count (*) z grupy klas_time o 1;Funkcja date_trunc () to funkcja obcięcia, która jest stosowana do znacznika znacznika, aby obciąć wartość wejściową na ziarnistość, taką jak sekundy, minuty i godziny. Zatem, zgodnie z wynikową wartością uzyskaną za pomocą polecenia, dwie wartości o tych samych godzinach są zgrupowane i liczone dwukrotnie.
Należy tutaj odnotować jedno: funkcja obcięcia (godzin) dotyczy tylko części godziny. Koncentruje się na najwyższej wartości lewej, niezależnie od minut i używanych sekund. Jeśli wartość godziny jest taka sama w więcej niż jednej wartości, klauzula grupy utworzy ich grupę. Na przykład 11:20:00 i 11:30:00. Ponadto kolumna date_trunc przyciąga porcję godzinę ze znacznika czasu i wyświetla część godzinę, gdy minuta i druga to „00”. Ponieważ w ten sposób grupowanie można zrobić tylko.
Przykład 2
Ten przykład dotyczy używania grupy według klauzuli wzdłuż samej funkcji date_trunc (). Nowa kolumna jest tworzona, aby wyświetlić wynikowe wiersze z kolumną Count, która będzie liczyć identyfikatory, a nie wszystkie wiersze. W porównaniu z ostatnim przykładem znak gwiazdkowy jest zastępowany identyfikatorem w funkcji liczby.
>> Wybierz date_trunc („hour”, c_period) jako time_table, Count (id) jako liczba z grupy klas_time według date_trunc („hour”, c_period);Wynikowe wartości są takie same. Funkcja TRUNC obcięła godzinę od wartości czasu, a w przeciwnym razie część jest deklarowana jako zero. W ten sposób grupowanie według godziny jest zadeklarowane. PostgreSQL otrzymuje bieżący czas z systemu, w którym skonfigurowałeś bazę danych PostgreSQL.
Przykład 3
Ten przykład nie zawiera funkcji trunc_date (). Teraz będziemy pobierać godziny od czasu, używając funkcji wyciągu. Funkcje extrica () działają jak trunc_date przy wyodrębnianiu odpowiedniej części, mając godzinę i docelową kolumnę jako parametr. To polecenie różni się w pracy i pokazywaniu wyników w aspektach zapewnienia tylko wartości godzin. Usuwa część minut i sekund, w przeciwieństwie do funkcji Trunc_Date. Użyj komendy Wybierz, aby wybrać identyfikator i poddasz się z nową kolumną zawierającą wyniki funkcji wyciągu.
>> Wybierz identyfikator, podmiot, ekstrakt (godzinę z C_Period) jako godzinę od klasy_time;Możesz zauważyć, że każdy wiersz jest wyświetlany przez godziny za każdym razem w odpowiednim rzędzie. Tutaj nie wykorzystaliśmy grupy według klauzuli do opracowania działania funkcji ekstraktu ().
Dodając grupę według klauzuli za pomocą 1, otrzymamy następujące wyniki.
>> Wybierz wyciąg (godzinę z C_Period) jako godzinę od grupy Class_Time o 1;Ponieważ nie użyliśmy żadnej kolumny w poleceniu Wybierz, więc będzie wyświetlana tylko kolumna godzina. Będzie to teraz zawierać godziny w zgrupowanej formie. Zarówno 11, jak i 9 są wyświetlane raz, aby pokazać zgrupowany formularz.
Przykład 4
Ten przykład dotyczy używania dwóch kolumn w instrukcji Select. Jeden to C_Period, aby wyświetlić czas, a drugi jest nowo utworzony jako godzina, aby pokazać tylko godziny. Grupa według klauzuli jest również stosowana do C_Period i funkcji ekstraktu.
>> Wybierz _period, wyciąg (godzinę z C_Period) jako godzinę od grupy klas_time według ekstraktu (godzinę od C_Period), C_Period;Wniosek
Artykuł „Postgres Group o godzinie” zawiera podstawowe informacje dotyczące grupy według klauzuli. Aby wdrożyć grupę według klauzuli z godziną, musimy użyć typu danych czasowych w naszych przykładach. Ten artykuł jest zaimplementowany w bazie danych PostgreSQL PSQL Shell zainstalowany w systemie Windows 10.