лАБОРАТОРНАЯ 3. ЛАБОРАТОРНАЯ РАБОТА 3. Лабораторная работа 3
Скачать 0.75 Mb.
|
ЛАБОРАТОРНАЯ РАБОТА №3 ВАРИАНТ 17 25. Найдите производителей принтеров, которые производят ПК с наименьшим объемом RAM и с самым быстрым процессором среди всех ПК, имеющих наименьший объем RAM. Вывести: Maker SELECT distinct product.maker FROM product WHERE product.type='Printer' INTERSECT SELECT distinct product.maker FROM product INNER JOIN pc ON pc.model=product.model WHERE product.type='PC' AND pc.ram=(SELECT MIN(ram) FROM pc) AND pc.speed = (SELECT MAX(speed) FROM (SELECT distinct speed FROM pc WHERE pc.ram=(SELECT MIN(ram) FROM pc))); 119. Сгруппировать все окраски по дням, месяцам и годам. Идентификатор каждой группы должен иметь вид "yyyy" для года, "yyyy-mm" для месяца и "yyyy-mm-dd" для дня. Вывести только те группы, в которых количество различных моментов времени (b_datetime), когда выполнялась окраска, более 10. Вывод: идентификатор группы, суммарное количество потраченной краски. SELECT TO_CHAR(B_DATETIME, 'yyyy') AS year, SUM(B_VOL) AS color_sum FROM utB GROUP BY TO_CHAR(B_DATETIME, 'yyyy') HAVING COUNT(DISTINCT B_DATETIME) > 10 UNION SELECT TO_CHAR(B_DATETIME, 'yyyy-mm') AS month, SUM(B_VOL) AS color_sum FROM utB GROUP BY TO_CHAR(B_DATETIME, 'yyyy-mm') HAVING COUNT(DISTINCT B_DATETIME) > 10 UNION SELECT TO_CHAR(B_DATETIME, 'yyyy-mm-dd') AS day, SUM(B_VOL) AS color_sum FROM utB GROUP BY TO_CHAR(B_DATETIME, 'yyyy-mm-dd') HAVING COUNT(DISTINCT B_DATETIME) > 10; 120. Для каждой авиакомпании, самолеты которой перевезли хотя бы одного пассажира, вычислить с точностью до двух десятичных знаков средние величины времени нахождения самолетов в воздухе (в минутах). Также рассчитать указанные характеристики по всем летавшим самолетам (использовать слово 'TOTAL'). Вывод: компания, среднее арифметическое, среднее геометрическое, среднее квадратичное, среднее гармоническое. With t as (Select ID_comp, convert(numeric(18,2), Case when time_in > = time_out Then datediff(minute, time_out, time_in) Else datediff(minute, time_out, dateadd(day, 1, time_in)) End) as trmin From (Select trip_no From Pass_in_trip Group by trip_no, [date]) pt join Trip t on pt.trip_no = t.trip_no ) Select Coalesce(c.name, 'TOTAL'), A_mean, G_mean, Q_mean, H_mean From ( Select Id_comp , convert(numeric(18,2), avg(trmin)) A_mean, convert(numeric(18,2), Exp(avg(Log(trmin)))) G_mean, convert(numeric(18,2), sqrt(avg(trmin*trmin))) Q_mean, convert(numeric(18,2), count(*)/sum(1/trmin)) H_mean From t Group by ID_comp with cube) as a left join Company c on a.ID_comp = c.ID_comp 121. Найдите названия всех тех кораблей из базы данных, о которых можно определенно сказать, что они были спущены на воду до 1941 г. |