BAZY id 81304 Nieznany (2)

background image

Funkcje agregujące i grupujące w SQL.

Pracując z bazami danych często pojawiają się potrzeby by policzyć np przychód, ilość
sprzedanego towaru, średnią kwotę zadłużenia itd. T-SQL posiada wiele funkcji
pozwalających na w/w działania na początek omówię funkcje COUNT
Tabela 4.

miesiac koszty
styczeń 30 zł
styczeń 30 zł
luty

450 zł

marzec 50 zł
kwiecień 600 zł

Użycie funkcji COUNT w MSSQL

?

1
2
3
4
5
6
7
8

SELECT

count(koszty),

miesiac

FROM

t_dane

group

by

miesiac

go


Jeśli tabela 4. to nasz baza danych, a użyjemy powyższego zapytania to wynikiem będzie:

2

styczeń

1

luty

1

marzec

1

kwiecień

Funkcja COUNT liczy wystąpienia bazie danych w tym przypadku dla stycznia koszty
wystąpiły dwa razy dla pozostałych miesięcy tylko raz, w klauzuli group by wskazujemy
poczym mają być grupowane dane. Jeśli użyli byśmy w powyższym zapytaniu zaraz za
SELECT DISTINCT wynik byłby dla stycznia 1 ponieważ DISTINCT nakazuje eliminacje
identycznych rekordów.

?

1
2
3
4
5
6

SELECT

DISTINCT

count(koszty),

miesiac

FROM

t_dane

group

by

miesiac


Możemy również użyć COUNT(slect distinct koszty) ma takie samo działanie jak poprzednie
zapytanie jednak tu eliminowane są duplikaty tylko w jednej kolumnie koszty.

Użycie funkcji SUM i AVG w MS SQL

background image

?

1
2
3
4
5
6

SELECT

sum(koszty),

miesiac

FROM

t_dane

group

by

miesiac


Funkcja SUM pozwala na sumowanie kosztów dla poszczególnych miesięcy, wynikiem tego
zapytania będzie 60 zł dla stycznia.

?

1
2
3
4
5
6

SELECT

AVG(koszty),

miesiac

FROM

t_dane

group

by

miesiac


Funkcja AVG pozwala obliczyć średni koszt dla poszczególnych miesięcy
Rozbuduje trochę naszą tabele 4.

miesiac koszty
styczeń 10 zł
styczeń 30 zł
styczeń 450 zł
luty

50 zł

luty

600 zł

Użcie funkcji MAX i MIN w MS SQL

?

1
2
3
4
5
6
7

SELECT

max(koszty) as

max,

min(koszty) as

min,

miesiac

FROM

t_dane

group

by

miesiac


Funkcja max i min pozwala na wybranie maksymalnych i minimalnych wartości naszych
danych pogrupowanych po miesiącach, użyłem tu polecenia AS, pozwala ono na nazwanie
kolumny w wyświetlanym wyniku
Wynik w/w zapytania t-sql działania funkcji max, min

miesiac max min

styczeń

450

10 zł

luty

600 50 zł

background image

Użycie kaluzuli HAVING w MS SQL

HAVING Pozwala określić, które ze zgrupowanych rekoródów przez GROUP BY mają być
wyświetlone przykład:

?

1
2
3
4

SELECT

miesiac, SUM(koszty)

FROM

t_dane

GROUP

BY

miesiac

HAVING

SUM(koszty) > 1000


W tym przykładzie za pomocą HAVING w t-sql wykluczamy miesiące w których suma
kosztów była niższa niż 100, możemy użyć również innych funkcji agregujących w celu
wykluczenia lub wybrania rekordów

(spr. funkcje t-sql)

select

OrderID

,

CustomerID

,

DateDiff

(

dd

,

ShippedDate

,

RequiredDate

)

'ilosc dni'

From

Orders


Lub

select

OrderID

,

CustomerID

,

CAST

(

RequiredDate

-

ShippedDate

AS

INT

)

'ilosc dni'

From

Orders


SELECT

distinct

Cast

(

productname

as

nvarchar

(

1

))

as

'litera'

,

Count

(

'litera'

)

FROM

Products

group

by

Cast

(

productname

as

nvarchar

(

1

))


Wyszukiwarka

Podobne podstrony:
Bazy 2 id 81307 Nieznany (2)
Bazy 2 id 81307 Nieznany (2)
bazy danych druga id 81754 Nieznany (2)
Bazy danych kolo 2 1 id 81756 Nieznany
BAZY DANYCH 4 id 81365 Nieznany (2)
Bazy Danych1 secret id 81733 Nieznany (2)
bazy danych kol 2 id 81577 Nieznany (2)
Bazy danych id 81339 Nieznany (2)
bazy danych wyk2 id 81712 Nieznany (2)
bazy danych wyklad1 id 81713 Nieznany (2)
Bazy danych w03 07 id 81702 Nieznany
Bazy Danych bd4 id 633777 Nieznany (2)
Bazy danych w02 07 id 81701 Nieznany
Bazy danych w13 07 id 81707 Nieznany
Bazy danych 07 id 81462 Nieznany (2)
Bazy wzor W id 735795 Nieznany (2)
bazy danych wyk id 81390 Nieznany (2)

więcej podobnych podstron