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

Задание: 29

Текст задания:
В предположении, что приход и расход денег на каждом пункте приема фиксируется не чаще одного раза в день [т.е. первичный ключ (пункт, дата)], написать запрос с выходными данными (пункт, дата, приход, расход). Использовать таблицы Income_o и Outcome_o.
Решение:

SELECT t1.point, t1.date, inc, `out`
FROM income_o t1 LEFT JOIN outcome_o t2 USING(point,date)
UNION
SELECT t2.point, t2.date, inc, `out`
FROM income_o t1 RIGHT JOIN outcome_o t2 USING(point,date);

Задание: 28

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

SELECT AVG(hd)
FROM product t1 JOIN pc t2 ON t1.model=t2.model
WHERE maker IN (
SELECT maker
FROM product
WHERE type='printer'
);
Анализ плана выполнения запроса:
Стоимость: 0.020093744620681.
Количество операций: 8.

Задание: 27

Текст задания:

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

SELECT maker, AVG(hd)
FROM product t1 JOIN pc t2 ON t1.model=t2.model
WHERE maker IN (
SELECT maker
FROM product
WHERE type='printer'
)
GROUP BY maker;

Анализ плана выполнения запроса:
Стоимость: 0.032090686261654.
Количество операций: 8.

Задание: 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.