Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Администрирование Oracle Database:
- Установка и настройка базы данных
- Обновление, применение патчей
- Оптимизация, настройка производительности
- Обучение, подготовка персонала, оптимизация
  • Страница:
  • 1
  • 2
  • 3
  • 4

ТЕМА:

Re: Задачка для начинающего 12 года 4 мес. назад #3674

Zuma пишет: А возможно решить задачу без использования аналитических функций?

В лом разбираться с lag-ами?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Задачка для начинающего 12 года 4 мес. назад #3675

Zuma пишет: А возможно решить задачу без использования аналитических функций?

ВНИМАНИЕ: Спойлер!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Задачка для начинающего 12 года 4 мес. назад #3676

Never mind, my suggestion will not work.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Задачка для начинающего 12 года 4 мес. назад #3677

  • Zuma
  • Zuma аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Просто на этом этапе занятий, они нам как бы еще не известны, нужно без них решить

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Задачка для начинающего 12 года 4 мес. назад #3678

Вот еще вариант
with src as (
  select 'Smith' username,'SUCCESS' log_result,to_date('15.12.10','dd.mm.yy') log_time from dual union all
  select 'Hacker','FAILURE',to_date('14.12.10','dd.mm.yy') from dual union all
  select 'Hacker','FAILURE',to_date('13.12.10','dd.mm.yy') from dual union all
  select 'Hacker','FAILURE',to_date('12.12.10','dd.mm.yy') from dual union all
  select 'Hacker1','SUCCESS',to_date('11.12.10','dd.mm.yy') from dual union all
  select 'Hacker1','FAILURE',to_date('10.12.10','dd.mm.yy') from dual union all
  select 'Hacker1','SUCCESS',to_date('09.12.10','dd.mm.yy') from dual union all
  select 'Hacker1','SUCCESS',to_date('07.12.10','dd.mm.yy') from dual union all
  select 'Hacker1','FAILURE',to_date('06.12.10','dd.mm.yy') from dual union all
  select 'Hacker2','FAILURE',to_date('05.12.10','dd.mm.yy') from dual)
select 
  username
 from 
  src att1 inner join src att2
  on att1.username=att2.username
  and att1.log_result=att2.log_result
  and att1.log_time<att2.log_time
  inner join src att3
  on att1.username=att3.username
  and att1.log_result=att3.log_result
  and att3.log_time<att1.log_time
 where
  att1.log_result = 'FAILURE'
  and not exists
  (select 
     * 
    from
     src tmp
    where 
     tmp.username=att1.username and
     tmp.log_result<>att1.log_result and
     (tmp.log_time between att1.log_time and att2.log_time or
      tmp.log_time between att3.log_time and att1.log_time))                     
 group by 
  username;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Задачка для начинающего 12 года 4 мес. назад #3679

  • Zuma
  • Zuma аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Duh, предполагается что БД будет пополняться

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
  • 4
Время создания страницы: 0.230 секунд