TGViewer
Channel Public Channel
BA & SA | 10000 Interview questions

BA & SA | 10000 Interview questions

@systemanalystinterview

Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7
Subscribers
10.3K
Photos
194
Videos
14
Links
369

Showing posts older than #12078 · Back to latest

Older Posts 20 shown
Post #12077 407
☀Объяснение:

При загрузке данных из разных источников (CSV, старые базы, ручной ввод) часто появляются дубли. Первичного ключа нет, и нужно выявить все строки-дубликаты (а не просто узнать, какие комбинации полей дублируются). Например, клиент Иванов Иван с email ivan@mail.ru может встретиться три раза с разными id (если бы id был). Нужно найти все эти три записи, чтобы потом оставить одну (чистка данных).

Что делает ROW_NUMBER()?
Оконная функция 
ROW_NUMBER() присваивает уникальный номер каждой строке внутри группы. Группа определяется PARTITION BY (поля, по которым ищем дубли). Порядок нумерации внутри группы задаётся ORDER BY (можно по любому полю, например, по условному id, если есть, или дате). Первая строка в группе получает номер 1, вторая – 2 и т.д. Все строки с номером > 1 – дубликаты.

Пример запроса:
sql
WITH ranked AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY fio, email, phone ORDER BY id) AS rn
FROM clients
)
SELECT * FROM ranked WHERE rn > 1;

Если таблица не имеет поля 
id, можно использовать ORDER BY (SELECT NULL) или любую константу – тогда порядок произвольный, но дубли всё равно будут отмечены.

Почему другие варианты не подходят:
C (GROUP BY + HAVING) – покажет, какие комбинации полей встречаются более одного раза, но не выдаст сами записи. Например, вы узнаете, что (Иванов, 
ivan@mail.ru) дублируется, но не получите три строки для анализа.
B (временная таблица) – технически можно: вставить уникальные записи во временную таблицу, потом сравнить. Но это громоздкий и медленный способ, особенно для больших объёмов.
D (добавить PK) – автогенерируемый ключ не найдёт существующие дубли. Он только предотвратит новые дубли, если добавить уникальное ограничение.

Реальный кейс:
В одной компании при миграции из старой CRM в новую выяснилось, что в таблице 
customers15% записей – дубли по ФИО+email. Аналитик использовал ROW_NUMBER(), сгенерировал отчёт с дублями и передал бизнесу на чистку. Без оконных функций пришлось бы писать сложные самосоединения, которые работали бы часы.

Что должен зафиксировать аналитик в требованиях к качеству данных:
«Периодически проводить проверку на дубли по критическим полям с использованием оконных функций».
«Результаты проверки должны включать все дублирующиеся строки, а не только комбинации полей».

Вывод: Для выявления полных дубликатов записей (а не просто факта дублирования) оконная функция 
ROW_NUMBER() – самый эффективный и наглядный инструмент.
  • 🤔 1
Post #12074 375
№4861 категория вопросов: #DBMS
Post #12072 368
НЕБОЛЬШОЙ АПГРЕЙД ТВОЕЙ ЛЕНТЫ, КОТОРЫЙ ДАСТ ХОРОШИЙ БУСТ ТВОЕЙ КАРЬЕРЕ

Друзья, наш канал попал в подборку тг-каналов про AI & IT, технологии и карьеру — получилась тусовка «для своих» 😎

Мы собрали каналы для себя, которые реально полезны:
➕ следить за ИИ — от свежих инструментов до реальных кейсов
➕ разбираться в технологиях — тренды, обзоры и объяснения
➕ расти в IT — советы по карьере, поиску работы и развитию
➕ быть в теме HR Tech — как технологии меняют найм и управление, ИИ для удаленки и работы за рубежом

🆒 Осталось только добавить папку себе ✔️https://t.me/addlist/iy6id2ElW_hiNTg0
  • 👍 1
  • 🔥 1
Post #12071 382
☀Объяснение:

В реальных проектах требования меняются постоянно: заказчик увидел конкурента, поменялись регуляторные условия, маркетинг придумал новую акцию. Если каждое изменение сразу отправлять в разработку, команда постоянно переключается, теряет фокус, а сроки срываются. Нет единого источника правды, и никто не помнит, почему требовали то одно, то другое.

Что такое процесс управления изменениями (Change Request)?
Это формальная процедура, которая состоит из шагов:

Запрос на изменение (Change Request, CR) – любой стейкхолдер заполняет форму: описывает изменение, обоснование (почему это важно), ожидаемую бизнес-ценность.

Оценка – аналитик вместе с разработчиками оценивает трудозатраты, влияние на другие модули, риски, необходимость изменений в документации и тестах.

Рассмотрение на Change Control Board (CCB) – встреча с участием заказчика, продукт-оунера, технического лида. Принимается решение: принять, отклонить, отложить. Если принимается, то определяется, за счёт каких задач это будет сделано (вытеснение других задач, сдвиг сроков).
Коммуникация – решение доводится до всей команды, обновляются требования и бэклог.
Реализация – изменение попадает в разработку уже с понятным приоритетом.

Почему остальные варианты не решают проблему?
A (фиксировать в протоколе) – полезно, но не даёт оценки трудозатрат и приоритизации. Команда всё равно вынуждена реагировать на каждое изменение «по факту».
C (еженедельный пересмотр приоритетов) – хорошая практика, но без формального CR изменения могут быть неполными, неоценёнными или незадокументированными.
D (матрица трассируемости) – помогает понять, какие артефакты связаны с требованием, но не управляет потоком изменений.

Реальный кейс из практики:
В одном проекте по разработке CRM для сети салонов связи изменения поступали ежедневно. Аналитик просто передавал их в бэклог, команда хваталась за то, что «горело». В результате через месяц половина фич была недоделана, а релиз сдвинулся на три недели. Ввели Change Request Board из трёх человек (заказчик, аналитик, тимлид). Заказчик заполнял CR-форму (описание, ценность). На ежедневной 15-минутной встрече оценивали влияние. Если оценка превышала 8 часов, вопрос выносили на еженедельное заседание. Через месяц количество несогласованных правок сократилось на 80%, а команда стала прогнозировать сроки.

Что должен зафиксировать аналитик:
В регламенте проекта: «Любое изменение требований после утверждения бэклога оформляется через Change Request и проходит оценку».
Форма CR должна содержать поля: автор, описание, обоснование (ожидаемый эффект), приоритет для бизнеса.
Порог принятия: например, изменения до 4 часов может утвердить PO, более 4 часов – CCB.

Вывод: Управление изменениями – это не бюрократия, а способ сохранить предсказуемость разработки и снизить хаос. Аналитик выступает не врагом изменений, а их фильтром и координатором.
Post #12069 385
№4860 категория вопросов: #REQUIREMENTS
Post #12068 454
⁉️ Устал искать интересные каналы с новостями про искусственный интеллект?

📁 СОХРАНИ СЕБЕ ЧТОБЫ НЕ ПОТЕРЯТЬ

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

😏 ЗАБИРАЙ ПАПКУ ТУТ

⏰ Папка действует 72 часа.

🤩 Организаторы: Green.Papka
Post #12067 394
☀Объяснение:

Ретраи, кэширование адресов в приложении или общая БД не решают проблему смены IP. API Gateway скрывает внутреннюю структуру, клиент знает только адрес шлюза
Post #12066 416
Очевидно, что всего через пару лет умение работать с ИИ станет таким же обычным делом, как открыть браузер или найти что-то в поисковике.

И вот что удивительно — многие до сих пор не воспринимают это всерьёз.

Одни продолжают делать всё по старинке — руками.
А другие — уже сейчас экономят часы работы с нейросетями и вырываются вперёд.
С каждым месяцем разрыв между ними будет только расти.


Вот отличная подборка сильных экспертов по AI & IT для твоего профессионального роста:
(https://t.me/addlist/iy6id2ElW_hiNTg0)

* Там — живые инструменты, реальные кейсы и понятные схемы, как использовать нейросети с толком и высоким КПД.

Если Тема тебе откликается — добавляйся в ПАПКУ 📌 👉 Делимся знаниями и аудиторией — растём вместе ⚡️ * Отписаться можно в любой момент. Остаться — тоже. ✔️
  • 👍 1
Post #12058 351
№4859 категория вопросов: #ARCHITECTURE
Post #12057 395
☀Объяснение:

Увеличение реплик, индекс или смена БД не решают проблему гонки. Только блокировка строки SELECT ... FOR UPDATE гарантирует, что второй заказ увидит уже изменённый остаток.
Post #12055 400
ПРОМТ, КОТОРЫЙ УЛУЧШИТ ВАШ БЛОГ ИЛИ ПРОДУКТ
⠀
- нормально сегментирует ЦА, а не напишет «женщины 30+»
- подскажет, что нужно докрутить

⠀
В одной ПАПКЕ с топовыми каналами по бизнесу, IT и AI
⠀
▪️AI песочница инженера

…. и ещё много полезных каналов, из которых вы получите
⠀
- нейросети, которые генерят контент за минуты, ведут переписки и приводят новых клиентов
- набор топовых инструментов для IT
- небанальные связки по привлечению трафика
⠀
❗️через 3 дня удалю пост
⠀
ПОПАСТЬ В ПОДБОРКУ КАНАЛОВ
Telegram B&IT Анна Гладкова invites you to add the folder “B&IT”, which includes 23 chats.
Post #12053 386
№4858 категория вопросов: #DBMS
Post #12052 418
☀Объяснение:

Остальные варианты — передача архитектору, уменьшение параметров, добавление тестировщика — не решают проблему отсутствия конкретной цифры. Только явная фиксация времени отклика (например, «не более 500 мс») делает требование проверяемым.)
Post #12049 409
№4857 категория вопросов: #REQUIREMENTS
Post #12048 456
☀Объяснение:

Closure Table (таблица замыканий) хранит все пути «предок-потомок» в отдельной таблице. Например, для дерева: категория 1 → 2 → 3, строки: (1,1,0), (2,2,0), (3,3,0), (1,2,1), (2,3,1), (1,3,2). Запрос «все подкатегории категории 1»: SELECT descendant FROM closure WHERE ancestor = 1. Это один простой быстрый запрос без рекурсии.
parent_id + CTE — рекурсивный запрос, при глубоких деревьях и больших объёмах данных может быть медленным.
path — хорошо, если не нужно часто искать поддеревья и не очень много записей.
отдельные колонки — ограничивает глубину.

Реальный пример: В каталоге интернет-магазина с 10 000 категорий и глубиной 5 уровней Closure Table позволяет получить все товары раздела за 20 мс, тогда как рекурсивный CTE — за 200 мс.

Вывод: Аналитик, проектируя структуру для иерархий с частым чтением поддеревьев, должен рекомендовать Closure Table.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →