Pull to refresh
4
0
Send message

Это уже из статьи видно, не "смешной милый котик дарит цветок", а кот с цветком по факту.

А CTE разве не будет считаться подзапросом? А ещё у вас выпали IP адреса, у которых было меньше 3-х посещений.

На оракле можно было бы решить через model, например -

Запрос
with journal as
(
    select 1 as id,  '127.0.0.1' as ip, to_timestamp('01.01.2010 10:10','dd.mm.yyyy HH24:mi') as time from dual union all
    select 2 as id,  '8.8.8.8'   as ip, to_timestamp('02.01.2010 11:15','dd.mm.yyyy HH24:mi') as time from dual union all
    select 3 as id,  '127.0.0.1' as ip, to_timestamp('03.01.2010 12:20','dd.mm.yyyy HH24:mi') as time from dual union all
    select 4 as id,  '127.0.0.1' as ip, to_timestamp('04.01.2010 13:25','dd.mm.yyyy HH24:mi') as time from dual union all
    select 5 as id,  '8.8.8.8'   as ip, to_timestamp('05.01.2010 14:30','dd.mm.yyyy HH24:mi') as time from dual union all
    select 6 as id,  '127.0.0.1' as ip, to_timestamp('06.01.2010 15:35','dd.mm.yyyy HH24:mi') as time from dual union all
    select 7 as id,  '8.8.8.8'   as ip, to_timestamp('07.01.2010 16:40','dd.mm.yyyy HH24:mi') as time from dual union all
    select 8 as id,  '127.0.0.1' as ip, to_timestamp('08.01.2010 17:45','dd.mm.yyyy HH24:mi') as time from dual union all
    select 9 as id,  '127.0.0.1' as ip, to_timestamp('09.01.2010 18:50','dd.mm.yyyy HH24:mi') as time from dual union all
    select 10 as id, '1.1.1.1'   as ip, to_timestamp('10.01.2010 19:55','dd.mm.yyyy HH24:mi') as time from dual union all
    select 11 as id, '1.1.1.1'   as ip, to_timestamp('11.01.2010 20:55','dd.mm.yyyy HH24:mi') as time from dual 
)
select ip, third_visit
  from journal j
model 
    return updated rows -- будем брать только те строки, что попали под правила
    partition by (j.ip)
    dimension by (
        -- нам понадобится номер посещения по IP
        row_number() over (partition by j.ip order by j.time, j.id) as num_visit,
        -- и всего посещений
        count(*) over (partition by j.ip) as total_visits
    )
    measures (cast(null as timestamp) as third_visit, j.time)
    rules 
    (
        -- возьмём дату третьего посещения, если всего посещений >= 3
        third_visit[num_visit = 3, total_visits >= 3] = time[cv(), cv()],
        -- возьмем пустую дату для первой строки по IP, если всего посешений меньше 3
        third_visit[num_visit = 1, total_visits < 3] = null
    )
/

Вывод:
IP        THIRD_VISIT
--------- ------------------------------
1.1.1.1
127.0.0.1 04-JAN-10 01.25.00.000000 PM
8.8.8.8   07-JAN-10 04.40.00.000000 PM

Я считал, что нужно найти третье посещение, а не третье посещение за день. Но это что-то нифига не базовый уровень :D Базовый уровень - это подзапрос с аналитикой.

И в оракле тоже оптимизатор, а планировщиком Oracle Scheduler называют, который джобиками оркестрирует.

Предлагаю сначала на чем-нибудь простеньком потренироваться, типа Сахары или Гоби. Когда обкатаем превращение пустынь в цветущие оазисы до совершенства, там уже можно планку выше поднимать.

Чтобы можно было ответить "да нет, всё работает, но у меня другой оператор".

У майкрософт конечно есть несколько реализаций на с поддержкой генериков, как простая обёртка над уже существующим OrderedDictionary (с очевидным боксингом/анбоксингом), так и на основе Dictionary<,>, но конечно странно, почему нет в API, тикет соответствующий уже 5 лет висит.

А чем встроенный OrderedDictionary не угодил?

Можно было бы легко ожидать, что это выведет истекшее время, по крайней мере, 10 секунд, но если вы запустите это, то вместо этого вы получите результат, подобный этому:

Не знаю, я бы и так трактовал передачу асинхронной лямбды как вызов async void, а это просто fire and forget. Меня сначала смутило отсутствие "Exit" в логе в самом конце, но видимо это из-за того, что это запуск Main выполнен без ожидания подтверждения выхода - просто программа отработала до того, как внутренний таск с вейтом завершился. А вот как захендлить ожидание через SynchronizationContext я не знал, да. В любом случае цикл статей интересен, за что поклон и уважение.

Да, тоже храню свой HTC Incredible S с задней панелью, покрытой матовым софт тач пластиком. Хорошие были смартфоны.

в Cyberia Nova планируют доработать «Смуту» до финальной версии до конца года

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

в игре будут квесты, гусары и, возможно, лошади, но уже в DLC

Возможно надеются выпустить полупустую игру из одной короткой сюжетки и потом наполнять контентом через платные DLC, но есть же ненулевая вероятность, что в случае провального релиза эти DLC уже никому не будут нужны.

Были у меня флешки ADATA, ни одна не прожила и пол года. Так что ваш результат для меня очень даже предсказуем :)

Купил год назад себе китайскую 3070m c алиэкспресс.

Hidden text

  • 256 бит шина памяти.

  • 8GB GDDR6.

  • 8 нм технический процесс.

  • RTX ядра

На данный момент она стоит около 24к рублей. Меня соотношение цена/производительность вполне себе устраивает - какой-нибудь ведьмак на 2к разрешении с экстремальными настройками графики ниже 60 фпс не проседает (но у меня и процессор тоже древний xeon c алиэкспресса с не самой производительной ОЗУ).

Вообще выбор был собирать либо топовый ПК, либо бесшумную времянку. Первый вариант не прокатил (жду пока релиза Zen 5, там посмотрим). А вот второй вариант получился очень даже ничего. Правда для обеспечения бесшумности у меня один кулер на ЦПУ вышел чуть не дороже материнки, 16 ядерного процессора и 32Гб ОЗУ вместе взятых.

Что по видеокартам - TDP видеокарт 4000 серии nvidia меня что-то пугает. Не готов я ставить себе в ПК что-то прожорливей 200 W.

Так в те же времена, что на видео выше был как раз популярен среди энтузиастов Aston Shell - https://youtu.be/j3B7eFMaBmw (обратите внимание на год видео). Того же поля свистоперделки. Сейчас это почти умерло, остался только Wallpaper Engine. Это как скины на Winamp / Windows Media Player - посмотреть, восхититься, отключить и никогда не использовать.

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

А те комментаторы, которые говорят про то, что Кама тяжёлая - видимо на "Урале" не катались :)

Эх, так и поступаю, вот только "офис" сейчас находится в двух шагах от кровати.

Information

Rating
5,107-th
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity

Specialization

Фулстек разработчик, Архитектор программного обеспечения
Ведущий
Oracle
Oracle PL/SQL
C#
WPF
XAML
.NET
.NET Core
ASP.NET WEB API
PostgreSQL