Re: off задача 57 на sql-ex.ru

2008-10-21 Thread freemanzav

Типа такого

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

2008-10-21 Thread freemanzav
Непонятен только последний пункт. Если его учитывать, то имя класса
можеть быть NULL, ну и запрос немного изменится

Re: off задача 57 на sql-ex.ru

2008-10-21 Thread freemanzav
Забыл group by s.class

Re: off задача 57 на sql-ex.ru

2008-10-21 Thread freemanzav

Ну вобщем, если это учесть, то будет примерно так
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

2008-10-21 Thread WildSery

On Tue, 21 Oct 2008 15:23:36 +0400, Grishko Aleks <[EMAIL PROTECTED]> wrote:

> Подскажите плз.

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

А вот публикация условия задачи (не говоря уже про решения) - это нарушение 
соглашения, которое ты отметил как "согласен".
Gmane индексируется поисковиками, если чего.

Если это _быстро_ не уберут, то задачу на сайте придётся им менять - 
соответственно, то, что ты её решишь - тебе не поможет.

-- 
Сергей Смирнов.



Re: off задача 57 на sql-ex.ru

2008-10-21 Thread Grishko Aleks

Нда, про это я не подумал... Кстати техподдержка подсказала куда
копать, но и остальным большое спасибо!


>
> Если это _быстро_ не уберут, то задачу на сайте придётся им менять - 
> соответственно, то, что ты её решишь - тебе не поможет.
>
> --
> Сергей Смирнов.