Udostępnij za pośrednictwem


Praca z kolumnami w kwerendach agregacji (wizualne Narzędzia bazy danych)

Podczas tworzenia wartość zagregowana kwerendy kwerendy i projektanta widoku pewne założenia tak, aby go utworzyć prawidłowej kwerendy.Na przykład, jeśli tworzysz zapytanie agregujące i kolumna danych wyjściowych kwerendy i projektanta widoku automatycznie tworzy część kolumn w klauzula GROUP BY, tak aby nie przypadkowo spróbujesz wyświetlić zawartości pojedynczego wiersza w podsumowaniu.

Za pomocą grupy przez

Kwerendy i widoku Projektant używa następujących wytycznych do pracy z kolumnami:

  • Po wybraniu opcji Grupuj według lub dodać funkcja agregująca do kwerendy, wszystkie kolumny oznaczone do wyprowadzenia lub wykorzystywane do sortowania są automatycznie dodawane do klauzula GROUP BY.Kolumny nie są automatycznie dodawane do klauzula GROUP BY, jeśli są już częścią funkcja agregująca.

    Jeśli nie chcesz, aby dana kolumna jest częścią klauzula GROUP BY, należy ręcznie zmienić go, wybierając inną opcję w kolumnie Grupuj według w okienku kryteriów.Jednakże kwerendy i widoku Projektant nie uniemożliwią wybraniem opcji może spowodować w kwerendzie nie będzie działać.

  • Ręcznego dodania kolumna wyjociowej kwerendy do funkcja agregująca kryteria lub SQL okienku kwerendy i widoku Projektant nie usuwa automatycznie inne kolumna wyjociowe kwerendy.Dlatego należy usunąć pozostałe kolumny z danych wyjociowych kwerendy albo dodać je do klauzula GROUP BY lub funkcja agregująca.

Po wprowadzeniu warunek wyszukiwania kolumna Filtr w okienku kryteriów kwerendy i widoku Projektant obowiązują następujące reguły:

  • Jeśli Grupy przez kolumna z siatki nie jest wyświetlana (ponieważ nie określono jeszcze kwerendy agregującej), warunek wyszukiwania jest umieszczany w klauzula WHERE.

  • Jeśli jesteś już w zapytanie agregujące i została wybrana opcja gdzie w Grupy przez kolumna, warunek wyszukiwania jest umieszczany w klauzula WHERE.

  • Jeśli Grupy przez kolumna zawiera wartości inne niż gdzie, warunek wyszukiwania jest umieszczany w klauzula HAVING.

Za pomocą klauzuli HAVING i gdzie klauzul

Następujące zasady opisują sposoby odwoływania kolumn w zapytanie agregujące w warunkach wyszukiwania.Ogólnie rzecz biorąc, można użyć kolumna warunek wyszukiwania do filtrowania wierszy, które powinny być podsumowane (klauzula WHERE) lub do ustalenia, które pogrupowane wyniki są wyświetlane w końcowej produkcji globalnej (klauzula HAVING).

  • Poszczególne kolumny danych mogą być wyświetlane w WHERE lub klauzula HAVING, w zależności od tego, jak te są używane w innych miejscach kwerendy.

  • W przypadku gdy klauzul służą do wybierania podzbiór wierszy w celu sumowania i grupowanie, a zatem są stosowane przed jakiejkolwiek operacji grupowanie.Dlatego można użyć kolumna danych w klauzula WHERE nawet, jeśli nie jest częścią klauzula GROUP BY lub zawartej w funkcja agregująca.Na przykład następująca instrukcja wybiera wszystkie tytuły o cenie wyższej niż 10,00 dolarów i podaje orednią cenę:

    SELECT AVG(price)
    FROM titles
    WHERE price > 10
    
  • Jeśli utworzyć warunek wyszukiwania, który obejmuje kolumna używane także w klauzula GROUP BY lub funkcja agregująca, warunek wyszukiwania może mieć postać klauzula WHERE lub klauzulę HAVING — można podjąć podczas tworzenia warunku.Na przykład następująca instrukcja generuje średnie ceny tytułów każdego wydawcy, a następnie wyświetla średnią dla wydawców, w których średnia cena jest większa niż 10,00 dolarów:

    SELECT pub_id, AVG(price)
    FROM titles
    GROUP BY pub_id
    HAVING (AVG(price) > 10)
    
  • Jeśli używasz funkcja agregująca warunek wyszukiwania warunku występuje podsumowanie i muszą być częścią klauzula HAVING.