SQL Server zapewnia nam kilka funkcji agregujących, które mogą być używane do wykonywania różnych typów obliczeń na zbiorze wartości i zwracają pojedynczą wartość podsumowującą zestaw danych wejściowych. Te agregujące funkcje SQL Server obejmują AVG (), COUNT (), SUM (), MIN () i MAX ().

w tym artykule omówimy użycie funkcji MAX () i podamy wiele przykładów użycia funkcji MAX ().,

użycie

funkcja agregująca SQL MAX() służy do zwrócenia maksymalnej wartości z podanego wyrażenia liczbowego lub najwyższej wartości w sekwencji zestawiającej z podanego wyrażenia znakowego.,) funkcja agregująca wygląda następująco:

1
max( wyrażenie )

gdzie opcja all, która jest domyślną opcją, wskazuje, że funkcja max() aggregate zostanie zastosowana do wszystkich wartości wyrażenia, a opcja distinct wskazuje że każda unikalna wartość będzie brana pod uwagę w funkcji agregującej, która nie ma zastosowania do funkcji MAX ().,

wyrażenie tutaj może być przekazane do funkcji MAX () aggregate może być dowolną kolumną numeryczną, znakową, uniqueidentifier lub DateTime table, biorąc pod uwagę, że bitowy typ danych nie może być używany z funkcją Max () aggregate.

funkcja agregująca MAX () może również przyjmować wartość stałą lub dowolne wyrażenie arytmetyczne lub Łańcuchowe, biorąc pod uwagę, że funkcja agregująca MAX () zignoruje dowolną wartość NULL w wyrażeniu wejściowym.,

wartość zwracana z funkcji SQL MAX() aggregate będzie taka sama jak typ danych Expression, a zwracana wartość będzie NULL, gdy wyrażenie wejściowe nie ma wierszy do odczytu.,

6
7
Utwórz tabelę MAXDemo
( klucz główny ID INT IDENTITY,
EmpName nvarchar (100),
EmpDateOfBirth datetime,
empsalary decimal (6,2),
empisactive bit
)

Po utworzeniu tabeli wypełnimy tę tabelę danymi testowymi z tabel bazy danych adventureworks2017 Microsoft Testing, używając T-SQL skrypt poniżej:

środowisko testowe jest teraz gotowe z tabelą 316 rekordów.,14″>

1
2
3

wybierz Max(id) jako maxid
z maxdemo
idź

i zwracaną wartość w naszym demo oto 316, który jest ostatnio dodanym identyfikatorem pracownika, jak pokazano poniżej:

kolejny scenariusz, w którym musimy uzyskać nazwisko pracownika, który znajduje się na końcu porządku alfabetycznego.,

1
2
3
4

wybierz Max(empname) jako lastemp
z maxdemo
idź

w naszym przypadku instrukcja SELECT z funkcją SQL Max() aggregate zwróci ostatniego pracownika po sortowaniu nazw pracowników., Możesz to sobie wyobrazić jako sortowanie nazw malejących, a następnie otrzymanie pierwszej nazwy pracownika, jak pokazano poniżej:

funkcja agregująca SQL MAX() może być również używana z typem danych DateTime, gdzie sortuje wartości DateTime i zwraca ostatnią wartość z posortowanych wyników. W naszym scenariuszu potrzebujemy najmłodszego pracownika z najbliższą datą urodzenia.,ggregate function, as in the T-SQL SELECT statement below:

1
2
3
4

SELECT MAX(EmpDateOfBirth) AS YoungestEmp
FROM MAXDemo
GO

The previous SELECT statement with the SQL MAX() aggregate function will sort the employees’ birthdate and return the latest birthdate value., Możesz sobie wyobrazić funkcję Max () aggregate sortującą wartości daty urodzenia pracowników malejącą, a następnie otrzymującą pierwszą datę urodzenia, jak pokazano poniżej:

reorganizację skali wynagrodzeń pracowników można sprawdzić za pomocą różnych typów obliczeń i operacji agregacyjnych, w tym funkcji agregującej SQL MAX ().,V id=”cab9fbe5ad”>

1
2
3
4

iv id

select Max(empisactive) as maxactive
from maxdemo
go

wykonanie polecenia select nie powiedzie się, z Komunikatem o błędzie, który pokazuje, że typ danych bit nie może być używany z operatorem MAX, gdzie nie robi żadnej sceny, aby zobaczyć maksymalną wartość z kolumny bit, która ma już tylko dwie wartości, 1 i 0., Komunikat o błędzie będzie wyglądał następująco:

agregująca funkcja SQL MAX() może być również używana w klauzuli WHERE prostego zapytania SELECT., EmpIsActive = 1

poprzednie zapytanie select zwróci wszystkie informacje o pracowniku, którego wynagrodzenie jest największym wynagrodzeniem w ramach wynagrodzenia wszystkich pracowników, gdzie obliczy maksymalną wartość wynagrodzeń pracowników i porównuje wynagrodzenie każdego pracownika z tą wartością, jak pokazano poniżej:

możemy również użyć funkcji SQL max() aggregate, aby zwrócić maksymalną wartość określonej kolumny z innymi wartościami kolumn, gdzie wszystkie niezagregowane kolumny powinny być wymienione w klauzuli group by.,w tym celu należy wybrać opcję MAX(AllowanceValue) jako MaxAllowance z programu MAXDemo, a następnie wybrać opcję MAX (AllowanceValue) jako MaxAllowance z programu MAXDemo.div>

zwracany wynik będzie null, ponieważ tabela nie ma wartości w tej kolumnie, jak pokazano poniżej:

podsumowanie

wynika to z powyższych przykłady, w jaki sposób możemy użyć funkcji SQL max () aggregate, aby osiągnąć określony cel w różnych scenariuszach, z różnymi typami danych i w dowolnym zapytaniu T-SQL.,

  • Author
  • Recent Posts
Ahmad Yaseen is a Microsoft Big Data engineer with deep knowledge and experience in SQL BI, SQL Server Database Administration and Development fields.
He is a Microsoft Certified Solution Expert in Data Management and Analytics, Microsoft Certified Solution Associate in SQL Database Administration and Development, Azure Developer Associate and Microsoft Certified Trainer.,
także swoje porady SQL ' owe wnosi na wielu blogach.
Zobacz wszystkie posty Ahmada Yaseena

Ostatnie posty Ahmada Yaseena (Zobacz wszystkie)
  • Jak monitorować fabrykę danych Azure – 15 stycznia 2021 r.
  • za pomocą kontroli źródła w fabryce danych Azure – korzystanie z szablonów w usłudze Azure Data Factory – 8 stycznia 2021 r.

Articles

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *