суббота, 16 мая 2020 г.

Определить имена разных пассажиров, когда-либо летевших рейсом, который вылетел в субботу, а приземлился в воскресенье.

Задание: 110 (Serge I: 2003-12-24)


select name from passenger where id_psg in
 (select id_psg
  from pass_in_trip pit join trip t on pit.trip_no = t.trip_no
  where time_in < time_out and datepart(dw, date) = 7
 )

Все задачи и решения: https://exercises-on-sql.blogspot.com/2017/02/select-sql.html
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql

Найти НЕ белые и НЕ черные квадраты, которые окрашены разными цветами в пропорции 1:1:1.

Задание: 111 (Serge I: 2003-12-24)
Найти НЕ белые и НЕ черные квадраты, которые окрашены разными цветами в пропорции 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
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql

Какое максимальное количество черных квадратов можно было бы окрасить в белый цвет оставшейся краской

Задание: 112 (Serge I: 2003-12-24)


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
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql

Сколько каждой краски понадобится, чтобы докрасить все Не белые квадраты до белого цвета.

Задание: 113 (Serge I: 2003-12-24)

Вывод: количество каждой краски в порядке (R,G,B) 

SELECT sum(255-ISNULL ([R],0) ) R , sum(255-isnull([G],0)) G, sum(255-isnull([B],0)) B
FROM
(
/*merging all tables to find paint filling and color for all squares*/
select ISNULL(B_Q_ID, Q_ID) ID, V_COLOR, B_VOL Vol from
utB RIGHT JOIN utQ on B_Q_ID=Q_ID
LEFT JOIN utV on B_V_ID=V_ID
) as SourceT
PIVOT
(
/*rotating table and calculating each paint volume for each square*/
SUM(Vol) For V_COLOR IN ([R], [G], [B])
) Pvt
/*excluding white squares*/
where ISNULL ([R],0) + isnull([G],0) + isnull([B],0) <765

Все задачи и решения: https://exercises-on-sql.blogspot.com/2017/02/select-sql.html
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql

Определить имена разных пассажиров, которым чаще других доводилось лететь на одном и том же месте.

Задание: 114 (Serge I: 2003-04-08)
 Вывод: имя и количество полетов на одном и том же месте. 

WITH b AS
(SELECT ID_psg, COUNT(*) as cnt FROM Pass_In_Trip GROUP BY ID_psg, place),
b1 AS
(SELECT DISTINCT ID_psg, cnt FROM b WHERE cnt =(SELECT MAX(cnt) FROM b))
SELECT name, cnt FROM b1 JOIN Passenger p ON (b1.ID_psg = p.ID_psg)

Все задачи и решения: https://exercises-on-sql.blogspot.com/2017/02/select-sql.html
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql

Рассмотрим равнобочные трапеции, в каждую из которых можно вписать касающуюся всех сторон окружность.

Задание: 115 (Baser: 2013-11-01)
Рассмотрим равнобочные трапеции, в каждую из которых можно вписать касающуюся всех сторон окружность. Кроме того, каждая сторона имеет целочисленную длину из множества значений b_vol. 
Вывести результат в 4 колонки: Up, Down, Side, Rad. Здесь Up - меньшее основание, Down - большее основание, Side - длины боковых сторон, Rad – радиус вписанной окружности (с 2-мя знаками после запятой). 

select distinct Up=u.b_vol, Down=d.b_vol, Side=s.b_vol,
Rad=cast(POWER((POWER(s.b_vol,2)-POWER((1.*d.b_vol-1.*u.b_vol)/2,2)),1./2.)/2 as dec(15,2))
  from utB u, utB d, utB s
  where u.b_vol<d.b_vol and 1.*u.b_vol+1.*d.b_vol=2.*s.b_vol

Все задачи и решения: https://exercises-on-sql.blogspot.com/2017/02/select-sql.html
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql

Считая, что каждая окраска длится ровно секунду, определить непрерывные интервалы времени с длительностью более 1 секунды из таблицы utB.

Задание: 116 (Velmont: 2013-11-19)
Считая, что каждая окраска длится ровно секунду, определить непрерывные интервалы времени с длительностью более 1 секунды из таблицы utB. 
Вывод: дата первой окраски в интервале, дата последней окраски в интервале. 

SELECT MIN(D)start, MAX(D)finish
FROM
(
SELECT D, SUM(F)OVER(ORDER BY D ROWS UNBOUNDED PRECEDING)F
FROM
(
SELECT B_DATETIME D, IIF(IsNull(DATEDIFF(second, LAG(B_DATETIME)OVER(ORDER BY B_DATETIME), B_DATETIME),0)<=1,0,1)F
FROM utB
)q
)q
GROUP BY F
HAVING DATEDIFF(second,MIN(D),MAX(D))> 0

Все задачи и решения: https://exercises-on-sql.blogspot.com/2017/02/select-sql.html
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql