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 35 975 subscribers, ranking 3 614 in the Technologies & Applications category and 17 757 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 35 975 subscribers.
According to the latest data from 05 September, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 94 over the last 30 days and by -6 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 6.31%. Within the first 24 hours after publication, content typically collects 3.35% reactions from the total number of subscribers.
- Post reach: On average, each post receives 2 271 views. Within the first day, a publication typically gains 1 205 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 06 September, 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.
a IS NOT NULL OR b IS NOT NULL OR c IS NOT NULL
Но то же самое по смыслу условие можно записать гораздо короче с помощью функции coalesce:
coalesce(a, b, c) IS NOT NULL
☑️IS NOT NULL + AND
Немного изменим условие - заменим OR на AND:
a IS NOT NULL AND b IS NOT NULL AND c IS NOT NULL
Тут нам поможет ROW-конструктор:
(a, b, c) IS NOT NULL
☑️IS NULL + AND
Теперь заменим IS NOT NULL на IS NULL:
a IS NULL AND b IS NULL AND c IS NULL
Тут достаточно вспомнить из логики, что (A and B) эквивалентно not(not A or not B), а (A or B) - not(not A and not B), поэтому легко применяем not к варианту IS NOT NULL + OR:
coalesce(a, b, c) IS NULL
Или с помощью ROW-конструктора:
(a, b, c) IS NULL☑️IS NULL + OR Остался последний вариант:
a IS NULL OR b IS NULL OR c IS NULLТут мы можем "обратить" вариант IS NOT NULL + AND:
NOT (a, b, c) IS NOT NULLЗаметьте, что пара
NOT тут "не сокращается", иначе получился бы предыдущий вариант.
Подробнее об особенностях работы со сложными выражениями тут — "PostgreSQL Antipatterns: вычисление условий в SQL". И ещё годная статья — "«Ленивый сахар» PostgreSQL"
@sqlhubSweet-Viz — обширный HTML-дашборд с полезными представлениями и сводками данных, который генерируется выполнением всего одной строки кода.
pip install sweetviz
import sweetviz as sv
my_report = sv.analyze(my_dataframe)
my_report.show_html() # Default arguments will generate to "SWEETVIZ_REPORT.html"
▪Github
@sqlhubPandas, NumPy, Scikit-learn, XGBoost и Matplotlib. SpeedML также предоставляет функциональные возможности для автоматизированного EDA.
pip install speedml
• Github
@sqlhubGephi Lite — это его облегчённая веб-версия.
Пользователи могут видеть все параметры сети, использовать фильтры, настраивать визуализацию графа, сохранять и экспортировать файлы.
🔗 gephi.org/gephi-lite
@sqlhubinet, то для IPv4-адресов все будет тривиально:
'0.0.0.0'::inet + ipnum::bigintА вот для преобразования числа к формату IPv6-адреса придется проявить немного изобретательности: — "математически" разбиваем число на 8 двухбайтовых сегментов по (2 ^ 16) ^ i — каждое значение преобразуем в шестнадцатеричную систему счисления и добиваем лидирующими нулями — склеиваем сегменты через двоеточие и кастуем к
inet
array_to_string(ARRAY(
SELECT
lpad(to_hex(trunc(
ipnum % (2::numeric(39,0) ^ ((i + 1) * 16)) / (2::numeric(39,0) ^ (i * 16))
)::integer), 4, '0')
FROM
generate_series(7, 0, -1) i
), ':')::inet
В принципе, после этого мы можем "свернуть" ip_from и ip_to в подсеть, не обращая внимания на исходный формат:
inet_merge(ip_from, ip_to) subnetА если проиндексируем эти подсети с помощью gist...
CREATE INDEX ON country_inet USING gist(subnet inet_ops);
... то сможем по индексу быстро определять принадлежность произвольного IPv4/IPv6-адреса подсетям с помощью соответствующих операторов примерно таким запросом:
SELECT
*
FROM
country_inet
WHERE
subnet >> '8.8.8.8' AND
country <> '-'
ORDER BY
masklen(subnet) DESC
LIMIT 1;
@sqlhubCASE
Тут ниже представлена попытка заNULLить значение, если оно равно чему-то.
, CASE WHEN sdate = '1900-01-01' THEN NULL ELSE sdate END sdate
, CASE WHEN mdate = '1900-01-01' THEN NULL ELSE mdate END mdate
Но ведь в PostgreSQL есть функция nullif, которая делает ровно то же самое.
NULLIF(значение1, значение2)
Функция NULLIF выдаёт значение NULL, если значение1 равно значение2; в противном случае она возвращает значение1. Это может быть полезно для реализации обратной операции к COALESCE. В частности, для примера, показанного выше:
SELECT NULLIF(value, '(none)') ...
В данном примере если value равно (none), выдаётся null, а иначе возвращается значение value.
То есть в примере выше можно переписать короче и понятнее:
, NULLIF(sdate, '1900-01-01') sdate
, NULLIF(mdate, '1900-01-01') mdate
@sqlhub