пятница, 7 марта 2014 г.

Задание: 26

Текст задания:
Найдите среднюю цену ПК и ПК-блокнотов, выпущенных производителем A (латинская буква).
Вывести: одна общая средняя цена.
Решение:

SELECT AVG(price)
FROM (
SELECT code, price, pc.model, ram, hd
FROM pc
WHERE model IN (
SELECT model
FROM product
WHERE maker='a'
)
UNION
SELECT code, price, laptop.model, ram, hd
FROM laptop
WHERE model IN (
SELECT model
FROM product
WHERE maker='a'
)
) a;
Анализ плана выполнения запроса:
Стоимость: 0.026801599189639.
Количество операций: 9.

Задание: 25

Текст задания:
Найдите производителей принтеров, которые производят ПК с наименьшим объемом RAM и с самым быстрым процессором среди всех ПК, имеющих наименьший объем RAM.
Вывести: Maker.
Решение:

SELECT DISTINCT maker
FROM product
WHERE model IN (
SELECT model
FROM pc
WHERE ram = (
  SELECT MIN(ram)
  FROM pc
  )
AND speed = (
  SELECT MAX(speed)
  FROM pc
  WHERE ram = (
   SELECT MIN(ram)
   FROM pc
   )
  )
)
AND
maker IN (
SELECT maker
FROM product
WHERE type='printer'
);
Анализ плана выполнения запроса:
Стоимость: 0.03169197961688.
Количество операций: 16.

Задание: 24

Текст задания:
Перечислите номера моделей любых типов, имеющих самую высокую цену по всей имеющейся в базе данных продукции.
Решение:

SELECT model
FROM (
 SELECT model, price
 FROM pc
 UNION
 SELECT model, price
 FROM Laptop
 UNION
 SELECT model, price
 FROM Printer
) t1
WHERE price = (
 SELECT MAX(price)
 FROM (
  SELECT price
  FROM pc
  UNION
  SELECT price
  FROM Laptop
  UNION
  SELECT price
  FROM Printer
  ) t2
 );
Анализ плана выполнения запроса:
Стоимость: 0.043207447975874.
Количество операций: 12.

Задание: 23

Текст задания:
Найдите производителей, которые производили бы как ПК со скоростью не менее 750 МГц, так и ПК-блокноты со скоростью не менее 750 МГц.
Вывести: Maker.
Решение:

SELECT DISTINCT maker
FROM product t1 JOIN pc t2 ON t1.model=t2.model
WHERE speed>=750 AND maker IN
(
SELECT maker
FROM product t1 JOIN laptop t2 ON t1.model=t2.model
WHERE speed>=750
);
Анализ плана выполнения запроса:
Стоимость: 0.029304374009371.
Количество операций: 9.

Задание: 22

Текст задания:
Для каждого значения скорости ПК, превышающего 600 МГц, определите среднюю цену ПК с такой же скоростью.
Вывести: speed, средняя цена.
Решение:

SELECT speed, AVG(price)
FROM pc WHERE speed>600
GROUP BY speed;
Анализ плана выполнения запроса:
Стоимость: 0.014795943163335.
Количество операций: 4.

Задание: 21

Текст задания:
Найдите максимальную цену ПК, выпускаемых каждым производителем.
Вывести: maker, максимальная цена.
Решение:

SELECT maker, MAX(price)
FROM product JOIN pc ON product.model=pc.model
GROUP BY maker;
Анализ плана выполнения запроса:
Стоимость: 0.023563699796796.
Количество операций: 5.

Задание: 20

Текст задания:
Найдите производителей, выпускающих по меньшей мере три различных модели ПК.
Вывести: Maker, число моделей.
Решение:

SELECT maker, COUNT(model)
FROM product
WHERE type='pc'
GROUP BY maker
HAVING COUNT(model)>=3;
Анализ плана выполнения запроса:
Стоимость: 0.014944361522794.
Количество операций: 5.