Организация 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 |