Składnia:
ROLUP służy do tworzenia grupy kolumn. Tak więc każda agregowana funkcja MySQL i grupy według klauzuli jest używana w zapytaniu, w którym używany jest zwijanie. Składnia zwijania pokazano poniżej. Nazwy pola tabeli, które będą używane po klauzuli wybranej z grupy według klauzuli do grupowania.
Wybierz Field1, Field2 AggregateFunkction (Field3)Zastosowania instrukcji ROLUP w Wybierz zapytanie:
W tym samouczku pokazano różne zastosowania instrukcji ROLUP z grupą według klauzuli w zapytaniu.
Wymagania wstępne:
Musisz utworzyć tabelę bazy danych z danymi w bazie danych MySQL, aby sprawdzić użycie instrukcji ROLUP z grupą według klauzuli w MySQL. Otwórz terminal i połącz się z serwerem MySQL, wykonując następujące polecenie.
$ sudo mysql -u rootUruchom następujące polecenie, aby utworzyć nazwaną bazę danych test_db.
Utwórz bazę danych test_db;Uruchom następujące polecenie, aby wybrać bazę danych.
Użyj test_db;Uruchom następujące zapytanie, aby utworzyć tabelę o nazwie Sales_persons z czterema polami.
Utwórz tabelę Sales_persons (Uruchom następujące zapytanie, aby wstawić trzy rekordy do sprzedawca tabela.
Wstaw do „Sales_persons” („ID”, „Nazwa”, „e -mail”, „contact_no”) wartości (null, „Kamal Hasan”, „[email protected] ', „0191275634”),Uruchom następujące zapytanie, aby utworzyć tabelę o nazwie obroty z czterema dziedzinami zawierającymi klucz obce, który tworzy relacje jeden do wielu Sales_persons stół do obroty tabela.
Utwórz sprzedaż tabeli (Uruchom następujące zapytanie, aby wstawić cztery rekordy do obroty tabela.
Wstaw do „sprzedaży” („id”, „sales_date”, „kwota”, „sp_id”)Przykład-1: Utwórz raport podsumowujący bez użycia instrukcji ROLLUP
Poniższe zapytanie wyboru obliczy raport podsumowujący całkowitą kwotę sprzedaży każdego sprzedawcy i całkowitą kwotę sprzedaży całej sprzedaży za pomocą Union All z dwoma wybranymi zapytaniami. Jedno wybrane zapytanie odzyska nazwisko sprzedawcy i całkowitą sprzedaż tego sprzedawcy. Kolejne zapytanie obliczy sprzedaż wszystkich sprzedawców. Wykonaj następujące zapytanie z monitu MySQL.
Wybierz nazwę, suma (kwota) jako całkowitaWyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego zapytania. Jest jeden rekord dla sprzedawcy o imieniu „Abir Hossain” z wartością identyfikatora 3 w obroty Tabela, a kwota wynosi 563400. Istnieją trzy rekordy dla sprzedawcy o nazwie „Kamal Hasan” z wartością identyfikacyjną, 1 w tabeli sprzedaży, a całkowita kwota sprzedaży wynosi 8400000. Suma całej kwoty sprzedaży wynosi 563400+8400000 = 8963400.
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego zapytania. Pole nazwy pokaże wartość zerową dla wiersza zawierającego całkowitą kwotę.
Przykład-2: Użycie Rollup z funkcją pola i sum ()
Wyjście wygenerowane w poprzednim przykładzie można łatwo wygenerować za pomocą instrukcji ROLUP, która została pokazana w tym przykładzie. Wybierz zapytanie, które zostało użyte do zliczenia całkowitej kwoty sprzedaży wszystkich sprzedawców w poprzednim przykładzie, nie jest wymagane w następującym zapytaniu z powodu użycia instrukcji ROLLUP. Pole nazwy obroty Tabela została użyta z funkcją agregatów w zapytaniu. Grupa według klauzuli zawiera pole nazwy z instrukcją ROLLUP.
Wybierz nazwę, suma (kwota) jako całkowitaWyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego zapytania. Podobnie jak poprzedni przykład, pole nazwy pokaże wartość zerową dla wiersza zawierającego całkowitą kwotę.
Przykład-3: Użycie funkcji ROLUP z funkcją roku () wraz z funkcją sum ()
W tym przykładzie pokazano użycie dowolnej wbudowanej funkcji MySQL z funkcją agregowanej do używania instrukcji ROLUP. Poniższe zapytanie wybierz raport podsumowujący kwotę sprzedaży na podstawie roku sprzedaży. Funkcja roku () została wykorzystana w zapytaniu, aby znaleźć wartość roku z daty sprzedaży. Zgodnie z wstawionymi danymi z tabeli sprzedaży, istnieją dwa wpisy dla 2020 r. I dwa wpisy za rok 2021.
Wybierz rok (sales_date), suma (kwota) jako ogółemWyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego zapytania. Całkowita kwota sprzedaży za rok 2020 wynosi 563400+6700000 lub 7263400. Całkowita kwota sprzedaży za rok 2021 wynosi 800000+900000 lub 1700000. W sumie 7263400+1700000 to 8963400.
Wniosek:
Wiele złożonych zapytań można łatwo zaimplementować za pomocą instrukcji ROLUP. Zastosowania tego oświadczenia zostały pokazane przy użyciu wielu tabel w tym samouczku do pomocy nowym użytkownikom MySQL.