Re: off задача 57 на sql-ex.ru
Типа такого SELECT sum(CASE O.result WHEN sunk THEN 1 else 0 end) sunk_cnt, c.class FROM Classes C left join Ships S ON C.class = S.class left join Battles B ON B.name = S.NAME left join Outcomes o on o.ship = B.name and o.battle = b.battle having count(distinct S.NAME) >= 3 and sum(CASE O.result WHEN sunk THEN 1 else 0 end) > 0
Re: off задача 57 на sql-ex.ru
Непонятен только последний пункт. Если его учитывать, то имя класса можеть быть NULL, ну и запрос немного изменится
Re: off задача 57 на sql-ex.ru
Забыл group by s.class
Re: off задача 57 на sql-ex.ru
Ну вобщем, если это учесть, то будет примерно так select sum(CASE O.result WHEN 'sunk' THEN 1 else 0 end) sunk_cnt, s.class from ( select c1.class NAME , c1.class from Classes C1 where not exists (select 1 from Ships S1 where s1.name = C1.class) union all select s2.name, c2.class from ships s2 inner join Classes C2 on C2.class = S2.class ) s left join Battles B ON B.name = S.NAME left join Outcomes o on o.ship = s.name and o.battle = b.battle having count(distinct S.NAME) >= 3 and sum(CASE O.result WHEN 'sunk' THEN 1 else 0 end) > 0
Re: off задача 57 на sql-ex.ru
On Tue, 21 Oct 2008 15:23:36 +0400, Grishko Aleks <[EMAIL PROTECTED]> wrote: > Подскажите плз. Там вообще не звери на том сайте. Пользуйся техподдержкой - они всегда намекнут, чего ты в решении не учёл. А вот публикация условия задачи (не говоря уже про решения) - это нарушение соглашения, которое ты отметил как "согласен". Gmane индексируется поисковиками, если чего. Если это _быстро_ не уберут, то задачу на сайте придётся им менять - соответственно, то, что ты её решишь - тебе не поможет. -- Сергей Смирнов.
Re: off задача 57 на sql-ex.ru
Нда, про это я не подумал... Кстати техподдержка подсказала куда копать, но и остальным большое спасибо! > > Если это _быстро_ не уберут, то задачу на сайте придётся им менять - > соответственно, то, что ты её решишь - тебе не поможет. > > -- > Сергей Смирнов.