Data Science. SQL hub
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo #VRHSZ
Show more📈 Analytical overview of Telegram channel Data Science. SQL hub
Channel Data Science. SQL hub (@sqlhub) in the Russian language segment is an active participant. Currently, the community unites 36 141 subscribers, ranking 3 709 in the Technologies & Applications category and 17 596 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 36 141 subscribers.
According to the latest data from 25 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 194 over the last 30 days and by -4 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 7.94%. Within the first 24 hours after publication, content typically collects 3.82% reactions from the total number of subscribers.
- Post reach: On average, each post receives 2 872 views. Within the first day, a publication typically gains 1 380 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 9.
- Thematic interests: Content is focused on key topics such as sql, индекс, postgres, index, sqlite.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“По всем вопросам- @workakkk
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
РКН: https://vk.cc/cIi9vo
#VRHSZ”
Thanks to the high frequency of updates (latest data received on 26 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
sqlite3 часто достаточно. APSW полезен, когда нужны расширенные возможности SQLite и более глубокий контроль над движком.
Установка: pip install apsw
https://github.com/rogerbinns/apswoplog фиксирует логические операции. Запись подтверждается после устойчивого сохранения большинством реплик журнала.
• phylog передаёт физические изменения страниц при checkpoint, сохраняя пакетную обработку WiredTiger.
То есть подтверждение записи отделено от подготовки страниц для чтения.
Новая read replica подключается к общим страницам и догоняет хвост журнала. Ей не нужно сначала копировать всю базу. А данные шифруются на вычислительном узле: общий storage-слой работает с зашифрованным содержимым.
Для приложения сохраняются протокол, драйверы и семантика операций. Меняется инфраструктура под базой. Atlas Infinite пока в public preview.
Хороший разбор для тех, кому интересны внутренности СУБД:
https://muratbuffalo.blogspot.com/2026/10/atlas-infinite-mongodbs-disaggregated.htmlid | start_at | end_at
---+----------+-------
1 | 1 | 10
2 | 2 | 3
3 | 9 | 12
4 | 15 | 16
5 | 16 | 20
Объедините пересекающиеся и соприкасающиеся интервалы. Вложенные интервалы тоже учитываются.
Ожидаемый результат:
start_at | end_at
---------+-------
1 | 12
15 | 20
Попробуйте решить до просмотра ответа 👇
Решение для PostgreSQL:
WITH bounds AS (
SELECT *,
MAX(end_at) OVER (
ORDER BY start_at, end_at, id
ROWS BETWEEN UNBOUNDED PRECEDING
AND 1 PRECEDING
) AS prev_max
FROM intervals
),
marked AS (
SELECT *,
CASE WHEN prev_max IS NULL
OR start_at > prev_max
THEN 1 ELSE 0 END AS new_group
FROM bounds
),
grouped AS (
SELECT *,
SUM(new_group) OVER (
ORDER BY start_at, end_at, id
ROWS UNBOUNDED PRECEDING
) AS grp
FROM marked
)
SELECT MIN(start_at) AS start_at,
MAX(end_at) AS end_at
FROM grouped
GROUP BY grp
ORDER BY start_at;
Подвох: LAG(end_at) для интервала [9,12] вернёт 3 и ошибочно начнёт новую группу. Но более ранний интервал [1,10] всё ещё перекрывает его.
Нужен максимальный конец среди всех предыдущих строк, а не только конец соседней.1 и 99 через границу всего 2 единицы.
Для каждой точки найдите всех ближайших соседей, исключая саму точку.
WITH points(id, x, y) AS (
VALUES (1, 1, 1), (2, 99, 99), (3, 3, 99)
),
distances AS (
SELECT a.id, b.id AS neighbor,
POWER(LEAST(ABS(a.x-b.x), 100-ABS(a.x-b.x)), 2)
+ POWER(LEAST(ABS(a.y-b.y), 100-ABS(a.y-b.y)), 2) AS d2
FROM points a
JOIN points b ON a.id <> b.id
),
ranked AS (
SELECT *,
DENSE_RANK() OVER (
PARTITION BY id ORDER BY d2
) AS r
FROM distances
)
SELECT id, neighbor, SQRT(d2) AS distance
FROM ranked
WHERE r = 1
ORDER BY id, neighbor;
Ответ: 1 → 2, 3; 2 → 1; 3 → 1. Расстояние во всех случаях √8 ≈ 2,828.
Подвох: по каждой оси выбираем минимум между прямым путём и переходом через границу. DENSE_RANK() сохраняет все равные минимумы, а ранжирование по квадрату расстояния позволяет вычислить корень только при выводе.