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

Реставрация экспонатов секции "Треугольники" музея ПФАН проводилась согласно техническому заданию.

Задание: 108 (Baser: 2013-10-16)
Реставрация экспонатов секции "Треугольники" музея ПФАН проводилась согласно техническому заданию. Для каждой записи таблицы 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
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql

Вывести: 1. Названия всех квадратов черного или белого цвета.

Задание: 109 (qwrqwr: 2011-01-13)
Вывести: 
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
sql пример,select sql,sql запрос пример,sql запрос,sql использование,написать sql запрос,обучение sql

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

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