Организация Web-доступа к базам данных с использованием SQL-запросов
Рефераты >> Программирование и компьютеры >> Организация Web-доступа к базам данных с использованием SQL-запросов

Отметим также, что в столбце-аргументе перед применением любой функции, кроме COUNT(*), исключаются все неопределенные значения. Если оказывается, что аргумент – пустое множество, функция COUNT принимает значение 0, а остальные – NULL.

Например, для получения суммы цен, средней цены, количества поставляемых продуктов и количества разных цен продуктов, проданных коопторгом УРОЖАЙ (ПС=5), а также для получения количества продуктов, которые могут поставляться этим коопторгом, можно дать запрос

SELECT SUM(Цена),AVG(Цена),COUNT(Цена),

COUNT(DISTINCT Цена),COUNT(*)

FROM Поставки

WHERE ПС = 5;

и получить

SUM(Цена)

AVG(Цена)

COUNT(Цена)

COUNT(DISTINCT Цена)

COUNT (*)

6.2

1.24

5

4

7

В другом примере, где надо узнать «Сколько поставлено моркови и сколько поставщиков ее поставляют?»:

SELECT SUM(К_во),COUNT(К_во)

FROM Поставки

WHER ПР = 2;

будет получен ответ:

SUM(К_во)

COUNT (К_во)

-0-

0

Наконец, попробуем получить сумму массы поставленного лука с его средней ценой («Сапоги с яичницей»):

Результат:

SELECT (SUM(К_во) +AVG(Цена))

FROM Поставки

WHERE ПР = 10;

 

SUM(К_во)+AVG(Цена)

220.6

Фраза GROUP BY

Мы показали, как можно вычислить массу определенного продукта, поставляемого поставщиками. Предположим, что теперь требуется вычислить общую массу каждого из продуктов, поставляемых в настоящее время поставщиками. Это можно легко сделать с помощью предложения

SELECT ПР, SUM(К_во)

FROM Поставки

GROUP BY ПР;

Результат показан на рис. 2.5,а.

а)

б)

в)

г)

ПР

ПС

ПР

Цена

К_во

ПР

ПР

9

0

1

9

-0-

-0-

1

370

9

0

11

150

3

9

-0-

-0-

2

0

11

150

12

30

5

9

-0-

-0-

3

250

12

30

15

370

1

11

1.50

50

4

100

15

70

1

370

5

11

-0-

-0-

5

170

1

370

3

250

6

11

-0-

-0-

6

220

3

250

5

170

8

11

1.00

100

7

200

5

70

6

220

1

12

3.00

10

8

150

6

140

8

150

3

12

2.50

20

9

0

8

150

7

200

6

12

-0-

-0-

10

220

7

200

2

0

1

15

2.00

170

11

150

2

0

4

100

3

15

1.50

200

12

30

4

100

13

190

2

1

3.60

300

13

190

13

190

14

70

7

1

4.20

70

14

70

14

70

16

250

2

3

-0-

-0-

15

370

16

250

17

50

7

3

4.00

250

16

250

17

50

10

220

. . .

17

50

10

220


Страница: