Inne działy

 

 

HAVING filtrowanie wyników zapytań

Język SQL dostarcza jeszcze jedną metodę filtrowania wyników zapytania w połączeniu z klauzulą  GROUP BY

Klauzula WHERE filtruje wyniki zapytania zanim są one grupowane, natomiast klauzula HAVING filtruje wyniki po wykonaniu grupowania.

Wyrażenia zawarte w tej klauzuli wykonywane są na całych grupach, a nie na pojedynczych rekordach.

Postać polecenia – wybrającego te miasta, dla których suma wypłat jest wyższa od 4 000 zł

SELECT Miasto, SUM (Pensja) AS SUMA
FROM NAZWISKA
GROUP BY  Miasto     
HAVING SUM (Pensja) > 4000;

Funkcje agregujące są użyte w dwóch miejscach, w klauzuli  SELECT oraz  HAVING


W HAVING musi się znajdować takie samo wyrażenie jak na liście klauzuli SELECT

Nazwy kolumn, które nie pojawiają się na liście klauzuli SELECT , nie mogą być w ogóle użyte w klauzuli GROUP BY

Klauzula HAVING pojawia się przed  ORDER BY ale za GROUP BY

W obrębie klauzuli HAVING, można używać złożonych wyrażeń

Jedyne ograniczenie polega na tym, ze wszystkie wyrażenia w części HAVING muszą mieć swój odpowiednik na liście klauzuli SELECT

HAVING i WHERE mogą być stosowane w jednym zapytaniu.

Wynikiem poniższego zapytania będzie lista stanowisk, na których zatrudnionych jest więcej niż jedna osoba, wraz z podaniem  średniej pensji dla danego stanowiska:

SELECT Stanowisko, COUNT(Stanowisko), AVG (Pensja)
FROM NAZWISKA      
GROUP BY Stanowisko
HAVING COUNT(Stanowisko) > 1 ;

 

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.