пятница, 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.

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

Задание: 19

Текст задания:
Для каждого производителя найдите средний размер экрана выпускаемых им ПК-блокнотов.
Вывести: maker, средний размер экрана.
Решение:

SELECT maker, AVG(screen)
FROM product JOIN laptop ON product.model=laptop.model
GROUP BY maker;
Анализ плана выполнения запроса:
Стоимость: 0.020665800198913.
Количество операций: 6.

Задание: 18

Текст задания:
Найдите модели ПК-блокнотов, скорость которых меньше скорости любого из ПК.
Вывести: type, model, speed.
Решение:

SELECT DISTINCT product.type, laptop.model, laptop.speed
FROM laptop, product
WHERE speed <
(
SELECT MIN(speed) FROM pc
)
AND product.type='Laptop';
Анализ плана выполнения запроса:
Стоимость: 0.021488042548299.
Количество операций: 8.

Задание: 17

Текст задания:
Найдите модели ПК-блокнотов, скорость которых меньше скорости любого из ПК.
Вывести: type, model, speed.
Решение:

SELECT DISTINCT product.type, laptop.model, laptop.speed
FROM laptop, product
WHERE speed <
(
SELECT MIN(speed) FROM pc
)
AND product.type='Laptop';
Анализ плана выполнения запроса:
Стоимость: 0.021488042548299.
Количество операций: 8.

Задание: 16

Текст задания:
Найдите пары моделей PC, имеющих одинаковые скорость и RAM. В результате каждая пара указывается только один раз, т.е. (i,j), но не (j,i).
Порядок вывода: модель с большим номером, модель с меньшим номером, скорость и RAM.
Решение:

SELECT distinct pc1.model, pc2.model, pc1.speed, pc1.ram
FROM pc AS pc1, pc AS pc2
WHERE pc1.model>pc2.model AND pc1.speed=pc2.speed AND pc1.ram=pc2.ram;
Анализ плана выполнения запроса:
Стоимость: 0.036808967590332.
Количество операций: 4.

Задание: 15

Текст задания:
Найдите размеры жестких дисков, совпадающих у двух и более PC.
Вывести: HD.
Решение:

SELECT hd
FROM pc
GROUP BY hd
HAVING count(hd)>1;
Анализ плана выполнения запроса:
Стоимость: 0.014981691725552.
Количество операций: 5.

Задание: 14

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

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

Задание: 13

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

SELECT AVG(speed)
FROM pc LEFT JOIN product ON product.model=pc.model
WHERE product.maker='A';
Анализ плана выполнения запроса:
Стоимость: 0.011982340365648.
Количество операций: 5.

Задание: 12

Текст задания:
Найдите среднюю скорость ПК-блокнотов, цена которых превышает 1000 дол.
Решение:

SELECT AVG(speed)
FROM laptop
WHERE price>1000;
Анализ плана выполнения запроса:
Стоимость: 0.0033102100715041.
Количество операций: 3.

Задание: 11

Текст задания:
Найдите среднюю скорость ПК.
Решение:

SELECT AVG(speed)
FROM pc;
Анализ плана выполнения запроса:
Стоимость: 0.0033402999397367.
Количество операций: 3.

Задание: 10

Текст задания:
Найдите принтеры, имеющие самую высокую цену. Вывести: model, price.
Решение:

SELECT model, price
FROM printer
WHERE price =
(
SELECT MAX(price) FROM printer
);
Анализ плана выполнения запроса:
Стоимость: 0.0066518601961434.
Количество операций: 4.

Задание: 9

Текст задания:
Найдите производителей ПК с процессором не менее 450 Мгц. Вывести: Maker.
Решение:

SELECT DISTINCT maker
FROM product JOIN pc ON product.model=pc.model
WHERE pc.speed>=450;
Анализ плана выполнения запроса:
Стоимость: 0.020546168088913.
Количество операций: 4.

Задание: 8

Текст задания:
Найдите производителя, выпускающего ПК, но не ПК-блокноты.
Решение:

SELECT DISTINCT maker
FROM product
WHERE type = 'PC'
EXCEPT
SELECT DISTINCT maker
FROM product
WHERE type= 'Laptop';
Анализ плана выполнения запроса:
Стоимость: 0.020371463149786.
Количество операций: 5.

Задание: 7

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

SELECT DISTINCT product.model, pc.price
FROM Product JOIN pc ON product.model = pc.model WHERE maker = 'B'
UNION
SELECT DISTINCT product.model, laptop.price
FROM product JOIN laptop ON product.model=laptop.model WHERE maker='B'
UNION
SELECT DISTINCT product.model, printer.price
FROM product JOIN printer ON product.model=printer.model WHERE maker='B';
Анализ плана выполнения запроса:
Стоимость: 0.069490596652031.
Количество операций: 14.

Задание: 6

Текст задания:
Укажите производителя и скорость для тех ПК-блокнотов, которые имеют жесткий диск объемом не менее 10 Гбайт.
Решение:

SELECT maker, speed
FROM product INNER JOIN laptop ON Product.model = Laptop.model
WHERE laptop.hd >=10;
Анализ плана выполнения запроса:
Стоимость: 0.0089627234265208.
Количество операций: 3.

Задание: 5

Текст задания:
Найдите номер модели, скорость и размер жесткого диска ПК, имеющих 12x или 24x CD и цену менее 600 дол.
Решение:

SELECT model, speed, hd
FROM pc
WHERE cd IN ('12x', '24x') AND price < 600;
Анализ плана выполнения запроса:
Стоимость: 0.0033193998970091.
Количество операций: 1.

Задание: 4

Текст задания:
Найдите все записи таблицы Printer для цветных принтеров.
Решение:

SELECT *
FROM printer
WHERE color='y';
Анализ плана выполнения запроса:
Стоимость: 0.003295199945569;
Количество операций: 1.

Задание: 3

Текст задания:
Найдите номер модели, объем памяти и размеры экранов ПК-блокнотов, цена которых превышает 1000 дол.
Решение:

SELECT model, ram, screen
FROM laptop
WHERE price > 1000;
Анализ плана выполнения запроса:
Стоимость: 0.0033007001038641.
Количество операций: 1.

Задание: 2

Текст задания:
Найдите производителей принтеров.
Вывести: maker.
Решение:

SELECT DISTINCT maker
FROM product
WHERE type = 'printer'
Анализ плана выполнения запроса:
Стоимость: 0.014790963381529;
Количество операций: 2.

Задание: 1

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

Найдите номер модели, скорость и размер жесткого диска для всех ПК стоимостью менее 500 дол. Вывести: model, speed и hd.
Решение:

SELECT model, speed, hd
FROM pc
WHERE price <500


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

Ответы на тесты sql-ex.ru 1-57



1.

SELECT model, speed, hd
FROM PC
where price<500

2. 


SELECT DISTINCT maker
FROM product
where type='Printer'

3.



SELECT model, ram, screen
from Laptop
where price>1000