Решаю РЕАЛЬНОЕ тестовое от КРУПНОГО БАНКА на должность аналитика данных

Поделиться
HTML-код
  • Опубликовано: 28 авг 2024
  • t.me/+SQ09-7nS...
    В этом ролике решаю реальное тестовое задание, которое попалось одному из моих учеников во время поиска работы.
    анализ данных, sql, pandas, python, dwh, ds, data science, аналитик, бизнес, системный

Комментарии • 27

  • @nikolaygorabtsov7875
    @nikolaygorabtsov7875 Месяц назад +1

    Recursive вроде необязательно писать, а даты в календаре я бы сделал с помощью generate series, а так решение есть и это главное, да first_value для оконки можно использовать

  • @sanaf059
    @sanaf059 Месяц назад

    1. Наверное, не было смысла в cte-шке порождать все даты сплошняком. По заданию же нужны только первые числа, достаточно взять первое января и в рекурсивной части прибавлять просто месяц.
    2. Кажется, курс на дату можно получать и без использования оконных функций: сначала к датам join таблицы курсов по неравенству, затем к ней же ещё раз left join таблицы курсов по неравенству дат, и в секции where отсекать лишнее по условию «ключ второй таблицы is null»

    • @nataliepodgainova6582
      @nataliepodgainova6582 Месяц назад

      Простите, а как прибавлять просто месяц? В каждом месяце разное количество дней, а нужно учесть и 01.02 и 04.03. То есть если 30 января есть курс, 31 января есть курс, 01 февраля есть курс, то нужно выбрать именно 1 февраля. А если нет курса 1 февраля, то нужно брать значение ранее

    • @sanaf059
      @sanaf059 Месяц назад

      @@nataliepodgainova6582 в задании конкретно сказано, что нужен курс на 1 число каждого месяца. Первое число в любом месяце есть, февраль или апрель - без разницы
      Как прибавлять месяц - ну функцией date_add(…, interval 1 month) если речь про mysql

  • @kerrigan_katyakatya9377
    @kerrigan_katyakatya9377 Месяц назад +3

    Вот код на VBA без всяких костылей в лице пандаса и sql. Перестарались Вы, а так задачка для первого курса.
    For i = 3 To 14
    If (Day(Sheets(1).Cells(i, 5)) 1) And Sheets(1).Cells(i, 5) "" Then
    m = Month(Sheets(1).Cells(i, 5)) + 1
    Sheets(1).Cells(m + 2, 9) = "01." + Str(m) + ".2024"
    Sheets(1).Cells(m + 2, 10) = Sheets(1).Cells(i, 6).Value
    End If
    If Day(Sheets(1).Cells(i, 5)) = 1 Then
    m = Month(Sheets(1).Cells(i, 5))
    Sheets(1).Cells(m + 2, 9) = "01." + Str(m) + ".2024"
    Sheets(1).Cells(m + 2, 10) = Sheets(1).Cells(i, 6).Value
    End If
    Next i
    For i = 3 To 14
    If Sheets(1).Cells(i, 9) = "" Then
    Sheets(1).Cells(i, 9) = "01." + Str(i - 2) + ".2024"
    Sheets(1).Cells(i, 10) = Sheets(1).Cells(i - 1, 10)
    End If
    Next i

    • @takethejunioroutofthelamp
      @takethejunioroutofthelamp  Месяц назад

      дело в том что решать ТРЕБУЕТСЯ в sql

    • @takethejunioroutofthelamp
      @takethejunioroutofthelamp  Месяц назад

      а за решение в vba респект, только он мало где нужен и платят за эти знания немного, или нет?

    • @kerrigan_katyakatya9377
      @kerrigan_katyakatya9377 Месяц назад

      @@takethejunioroutofthelamp Я только ради спортивного интереса, думал логика функции нужна. В общем не прошел я Ваше собеседование(((

    • @takethejunioroutofthelamp
      @takethejunioroutofthelamp  Месяц назад

      @@kerrigan_katyakatya9377все еще впереди)

    • @bloodycuite7138
      @bloodycuite7138 Месяц назад

      Прикол в том, что такое на 1 курсе не решают. Тут самому нужно изучать

  • @MaxKalmykoff
    @MaxKalmykoff Месяц назад

    На вскидку... создать таблицу с первыми числами месяцов dates_list... дальше... select date, (select rate from rates rt where rt.date

    • @YuriKletsun
      @YuriKletsun Месяц назад

      Я так же думал но вместо order by… limit 1 хотел group и max() написать. Но ордер кажется быстрее отработает.

  • @PaulSith
    @PaulSith Месяц назад +1

    У нас подобную задачку давали разрабам в 2007

  • @5ka
    @5ka Месяц назад +1

    А нельзя по столбцу с датами из первой таблицы пройтись и просто взять курс на первое число или, если его нет, то на предыдущую дату?

    • @takethejunioroutofthelamp
      @takethejunioroutofthelamp  Месяц назад

      кидай код, как это будешь делать)

    • @digertdoment4326
      @digertdoment4326 Месяц назад

      ​@@takethejunioroutofthelamp могу код а конфеты дашь?

    • @davidbibi3138
      @davidbibi3138 Месяц назад

      ​@@digertdoment4326конфеты с комплиментом от шеф-повара

  • @Tvvinj3Lade
    @Tvvinj3Lade Месяц назад

    Длбрый день, что за IDE в видео?

  • @megaboy2k
    @megaboy2k Месяц назад

    В решении не объяснили алгортм предсказания курса

    • @takethejunioroutofthelamp
      @takethejunioroutofthelamp  Месяц назад

      что значит не обьяснил?

    • @megaboy2k
      @megaboy2k Месяц назад

      @@takethejunioroutofthelamp имеется ввиду, непонятно, почему именно такие результаты получились. Если есть ссылка на теорию, было бы полезно