Пусть
v1, v2, v3, v4, ... представляет последовательность вещественных чисел -
объемов окрасок b_vol, упорядоченных по возрастанию b_datetime, b_q_id,
b_v_id.
Найти
преобразованную последовательность P1=v1, P2=v1/v2, P3=v1/v2*v3,
P4=v1/v2*v3/v4, ..., где каждый следующий член получается из предыдущего
умножением на vi (при нечетных i) или делением на vi (при четных i).
Результаты
представить в виде b_datetime, b_q_id, b_v_id, b_vol, Pi, где Pi - член
последовательности, соответствующий номеру записи i. Вывести Pi с 8-ю
знаками после запятой.
with a as(
select *,row_number()over(order by b_datetime,b_q_id,b_v_id) n from utb)
select b_datetime,b_q_id,b_v_id,b_vol,
cast(exp(sm1)/exp(sm2) as numeric(12,8))k
from a x
cross apply
(select sum( iif(n%2<> 0,log(b_vol),0)) sm1,sum( iif(n%2=0,log(b_vol),0)) sm2 from a where n<=x.n)y
Все задачи и решения:
https://exercises-on-sql.blogspot.com/2017/02/select-sql.html

Для пятого по счету пассажира из числа вылетевших из Ростова в апреле 2003 года определить компанию, номер рейса и дату вылета.
Замечание. Считать, что два рейса одновременно вылететь из Ростова не могут.
Select name, trip_no, date
from(
select row_number() over(order by date+time_out,ID_psg) rn,name,Trip.trip_no,date
from Company,Pass_in_trip,Trip
where Company.ID_comp=Trip.ID_comp and Trip.trip_no=Pass_in_trip.trip_no
and town_from='Rostov' and year(date)=2003 and month(date)=4)_
where rn=5
Все задачи и решения:
https://exercises-on-sql.blogspot.com/2017/02/select-sql.html

Реставрация
экспонатов секции "Треугольники" музея ПФАН проводилась согласно
техническому заданию. Для каждой записи таблицы utb малярами
подкрашивалась сторона любой фигуры, если длина этой стороны равнялась
b_vol.
Найти окрашенные со всех сторон треугольники, кроме равносторонних, равнобедренных и тупоугольных.
Для каждого треугольника (но без повторений) вывести три значения X, Y, Z, где X - меньшая, Y - средняя, а Z - большая сторона.
SELECT DISTINCT b1.B_VOL, b2.b_vol, b3.b_vol FROM utb b1, utb b2, utb b3
WHERE b1.B_VOL < b2.B_VOL AND b2.B_VOL < b3.B_VOL
AND NOT ( b3.B_VOL > SQRT( SQUARE(b1.B_VOL) + SQUARE(b2.B_VOL)))
Все задачи и решения:
https://exercises-on-sql.blogspot.com/2017/02/select-sql.html

Вывести:
1. Названия всех квадратов черного или белого цвета.
2. Общее количество белых квадратов.
3. Общее количество черных квадратов.
SELECT A.Q_NAME AS q_name,
A.Whites AS Whites,
A.Cnt - A.Whites AS Blacks
FROM (SELECT Q.Q_ID,
Q.Q_NAME,
(SUM(SUM(B.B_VOL)) OVER())/765 AS Whites,
COUNT(*) OVER() AS Cnt
FROM utQ AS Q
LEFT JOIN utB AS B
ON Q.Q_ID = B.B_Q_ID
GROUP BY Q.Q_ID,
Q.Q_NAME
HAVING SUM(B.B_VOL) = 765
OR SUM(B.B_VOL) IS NULL) AS A
Все задачи и решения:
https://exercises-on-sql.blogspot.com/2017/02/select-sql.html

Найти
НЕ белые и НЕ черные квадраты, которые окрашены разными цветами в
пропорции 1:1:1. Вывод: имя квадрата, количество краски одного цвета
select B_Q_ID, sum(vol)/3 vol
from
(select B_Q_ID, V_COLOR, sum(B_VOL) vol
from utB, utV
where B_V_ID=V_ID
group by B_Q_ID, V_COLOR
) z
group by B_Q_ID
having count(v_color)=3
and sum(vol)<765
and sum(vol) % 3=0
Все задачи и решения:
https://exercises-on-sql.blogspot.com/2017/02/select-sql.html

select min(Qty) from (select SUM(RemainPaint)/255 Qty FROM (select V_COLOR, V_ID,
CASE
WHEN SUM(B_VOL) IS NULL
THEN 255
ELSE 255-SUM(B_VOL)
END RemainPaint
from utB right join utV on B_V_ID = V_ID
group by V_COLOR, V_ID
) R
group by V_COLOR
) Q
Все задачи и решения:
https://exercises-on-sql.blogspot.com/2017/02/select-sql.html
