Аналитика Telegram-канала
Подписчики
12 532
Охват за 24 ч
890
ER за 24 ч
7,10%
Публикаций
1 423
Динамика подписчиков
7 дней
30 дней
6 месяцев
Больше
25 окт28 окт31 окт
Показаны последние 7 дней
Больше истории →
Охваты публикаций
22.1026.1027.1028.1030.1030.10
202
Средний охват
311
Лучший результат
Показаны 6 публикаций — последние в канале
Больше статистики →
Упоминания
379
Упоминаний
11
Из них репостов
308
Каналов
454
Упоминаний
29
Из них репостов
172
Каналов
Последние посты
3 из 1 423 2 из 1 423ещё
182
0
30 окт, 14:11
💼 Войти в ИБ можно начать сегодня вечером, с телефона
Не обязательно бросать работу и покупать курс за сотни тысяч, чтобы понять, твоё ли это. Начать можно с бесплатного мини-курса!
➡️ Начать в Telegram
За пару часов разберёшься, чем вообще занимаются в кибербезопасности: что защищают, как работают атаки, как устроена защита и какие есть профессии с их зарплатами. Открывается в мессенджере, проходится по дороге с работы, без сайтов и долгих регистраций.
А дальше, если зацепит, прямо в боте можно записаться на бесплатный разбор карьерного трека: куда идти с твоим опытом и как.
ещё
59
1
30 окт, 12:11
SQL-задача с подвохом: почему `LAG()` неправильно объединяет интервалы?
Есть интервалы. Нужно объединить пересекающиеся и соприкасающиеся:
start_at | end_at
---------+-------
1 | 10
2 | 3
9 | 12
15 | 18
18 | 20
Ожидаемый результат:
1 | 12
15 | 20
Ловушка: сравнить начало интервала с концом предыдущего через LAG(end_at).
Для [9,12] предыдущий интервал – [2,3]. Кажется, появился разрыв. Но [9,12] пересекается с более ранним [1,10].
Нужен максимальный конец среди всех предыдущих строк.
Решение для PostgreSQL:
```sql
WITH bounds AS (
SELECT *,
MAX(end_at) OVER (
ORDER BY start_at, end_at
ROWS BETWEEN UNBOUNDED PRECEDING
AND 1 PRECEDING
) AS prev_max
FROM intervals
),
groups AS (
SELECT *,
SUM(CASE
WHEN prev_max IS NULL
OR start_at > prev_max THEN 1
ELSE 0
END) OVER (
ORDER BY start_at, end_at
ROWS UNBOUNDED PRECEDING
) AS grp
FROM bounds
)
SELECT MIN(start_at) AS start_at,
MAX(end_at) AS end_at
FROM groups
GROUP BY grp
ORDER BY start_at;
```
Разбор: MAX() находит границу уже просмотренных интервалов. Начало правее неё – новая группа. Накопительная сумма нумерует группы, а MIN/MAX собирают итоговые границы.
Условие > объединяет соприкасающиеся интервалы. Если соприкосновение объединять нельзя, используйте >=.
Предполагаем, что границы не NULL и start_at < end_at.
ещё
216
4
2 28 окт, 17:57
Продолжить анализ этого канала
- История роста подписчиков
- Просмотры и охваты публикаций
- Кто упоминает канал и кого упоминает он
- Похожие каналы и подбор для рекламы
Открыть аналитику
Демо до 14 дней