| Termin | Definicja |
|---|---|
| Funkcja agregująca | Funkcja agregująca to funkcja SQL wykonująca obliczenie na zbiorze wartości i zwracająca pojedynczy wynik, np. sumę lub średnią. Funkcja agregująca w zapytaniach SQLFunkcja agregująca służy do podsumowania wielu wierszy i przedstawienia ich za pomocą jednej wartości wynikowej. Zamiast zwracać każdy rekord osobno, pozwala obliczyć informację zbiorczą dotyczącą całego zestawu danych albo wybranej części tabeli. Takie podejście jest przydatne wtedy, gdy potrzebne jest ustalenie łącznej wartości sprzedaży, liczby zgłoszeń, średniego czasu realizacji, najniższego wyniku lub najwyższej wartości w określonym okresie. Do najczęściej stosowanych funkcji tego rodzaju należą W praktyce funkcja agregująca nie jest jedynie skrótem dla prostego dodawania lub liczenia. Określa sposób interpretacji zbioru danych, a rezultat zależy od typu kolumny, obecności wartości pustych, zastosowanych filtrów oraz poziomu grupowania. Z tego powodu poprawne zapytanie wymaga sprawdzenia, jakie rekordy mają zostać uwzględnione i czy wynik ma opisywać całą tabelę, czy tylko konkretny fragment danych. Funkcja agregująca a grupowanie i kontekst technicznyNajważniejsze rozróżnienie dotyczy obliczenia dla wszystkich wierszy oraz obliczenia wykonywanego osobno dla każdej grupy. Przy zapytaniu bez Przykładowo, zapytanie Istotna jest także kolejność etapów przetwarzania. Filtr W porównaniu z funkcjami działającymi na pojedynczym wierszu funkcja agregująca zmienia skalę obliczenia. Funkcja tekstowa może przekształcić jedną nazwę, a funkcja daty może wyodrębnić miesiąc z jednego znacznika czasu. Agregacja łączy natomiast informacje z wielu wierszy. Nie oznacza to jednak, że zawsze pobierany jest każdy rekord. Ostateczny zbiór może być ograniczony filtrem, połączeniem tabel, zakresem dat lub innym warunkiem. Funkcja agregująca i typowe problemy z wynikiemJednym z częstych źródeł nieporozumień są wartości Problemem bywa również mieszanie kolumn agregowanych z kolumnami zwykłymi. Jeżeli w zapytaniu znajduje się Ostrożność jest potrzebna przy łączeniu tabel. Jeżeli jeden rekord z tabeli głównej zostanie połączony z kilkoma rekordami tabeli powiązanej, wartości mogą pojawić się w zbiorze wielokrotnie. Wtedy funkcja agregująca zsumuje także powtórzone wiersze, mimo że w tabeli źródłowej dana wartość występowała tylko raz. Przed użyciem W podobny sposób może działać nieprawidłowy filtr dat. Zakres obejmujący datę początkową i końcową powinien uwzględniać również godzinę zapisaną w kolumnie. Przy danych przechowywanych z dokładnością do czasu bezpieczniejsze bywa określenie początku badanego okresu oraz początku kolejnego okresu, a następnie użycie warunku mniejszości dla górnej granicy. Pozwala to ograniczyć ryzyko pominięcia rekordów zapisanych późnym wieczorem. Funkcja agregująca w codziennej pracy z bazą danychPrzed napisaniem zapytania należy ustalić, co dokładnie ma oznaczać jeden wynik. Może on odpowiadać całej tabeli, pojedynczemu dniowi, osobie, kategorii, urządzeniu albo zgłoszeniu. Następnie powinno się wskazać kolumnę podlegającą obliczeniu i określić sposób traktowania brakujących danych. Takie przygotowanie ogranicza ryzyko sytuacji, w której poprawnie wykonane zapytanie odpowiada na inne pytanie niż zamierzone. Przydatne jest testowanie zapytania etapami. Najpierw można sprawdzić same rekordy po zastosowaniu Wynik agregacji może być prezentowany w raporcie, zestawieniu administracyjnym, formularzu podsumowania albo eksporcie do pliku. Jeżeli obliczenia wykonywane są często, znaczenie ma również wydajność. Filtrowanie po właściwych kolumnach, ograniczenie pobieranego zakresu oraz analiza planu zapytania mogą zmniejszyć ilość przetwarzanych danych. Nie powinno się jednak dodawać indeksów ani zmieniać struktury tabel wyłącznie na podstawie przypuszczeń. Najpierw należy ustalić, gdzie rzeczywiście występuje opóźnienie. Warto dokumentować znaczenie miar. Suma wartości brutto, suma wartości netto, liczba wszystkich rekordów i liczba rekordów unikalnych to różne informacje, nawet jeżeli zostały utworzone przy użyciu podobnych konstrukcji SQL. Jasne nazwy kolumn wynikowych, na przykład Przydatne bywa także rozróżnienie między agregacją a filtrowaniem wyników. Kiedy sprawdzić funkcję agregującą w serwisie komputerowymDo serwisu warto zgłosić się wtedy, gdy nieprawidłowe wyniki zapytań występują razem z niestabilnym działaniem laptopa, samoczynnym zamykaniem aplikacji, problemami z odczytem danych albo spowolnieniem pracy programu korzystającego z bazy. Przyczyną może być zarówno błąd w konstrukcji zapytania, jak i problem z nośnikiem danych, pamięcią operacyjną, systemem plików lub konfiguracją środowiska. W Warszawskim Pogotowiu Komputerowym 24/7 można skonsultować takie objawy i przekazać urządzenie do sprawdzenia. Przed zgłoszeniem dobrze jest przygotować opis problemu, przykład zapytania, oczekiwany wynik oraz rezultat faktycznie otrzymywany. Pomocne mogą być także informacje o tym, od kiedy występuje problem, czy dotyczy wszystkich tabel oraz czy pojawia się po zmianie programu lub danych. Nie powinno się kasować tabel, wykonywać masowych modyfikacji ani instalować przypadkowych narzędzi naprawczych bez kopii zapasowej. Jeżeli zapytanie zwraca wynik pusty, zbyt wysoki albo zmienia się po dodaniu połączenia tabel, należy najpierw sprawdzić zakres danych, wartości |