Data Science. SQL hub
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo #VRHSZ
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Data Science. SQL hub
تُعد قناة Data Science. SQL hub (@sqlhub) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 35 825 مشتركاً، محتلاً المرتبة 3 817 في فئة التكنولوجيات والتطبيقات والمرتبة 18 104 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 35 825 مشتركاً.
بحسب آخر البيانات بتاريخ 20 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -37، وفي آخر 24 ساعة بمقدار -11، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 7.26%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 3.88% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 603 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 389 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 11.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل sql, индекс, postgres, index, sqlite.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“По всем вопросам- @workakkk
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
РКН: https://vk.cc/cIi9vo
#VRHSZ”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 21 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
select id,sum(value) over(partition by i order by y), * from table1
Примечание: все поля существуют в таблице и соответствуют нужному типу данных.
Ответ
Да, отработает. Классический пример аналитической функции, внутри которой сначала выполняется группировка (partition by), потом выполняется сортировка (order by) и применяется агрегирующая функция. В данном случае все написано правильно. Этот вопрос проверяет у кандидата знание оконных функций.
@sqlhubGROUP BY, чтобы сгруппировать похожие записи вместе, а затем удалить количество записей в каждой группе.
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > 1;
2. Стандартизация текстовых полей
UPDATE table_name
SET column_name = UPPER(column_name);
Вы также можете использовать функцию REPLACE для замены определенных символов или строк в текстовых полях. Например:
UPDATE table_name
SET column_name = REPLACE(column_name, 'OldString', 'NewString');
3. Обработка отсутствующих или нулевых значений
SELECT column1, column2, ...
FROM table_name
WHERE column_name IS NULL;
Затем вы можете удалить эти записи или заменить отсутствующие значения значением по умолчанию. Например:
UPDATE table_name
SET column_name = 'DefaultValue'
WHERE column_name IS NULL;
4. Удаление кривых символов
UPDATE table_name
SET column_name = REPLACE(column_name, 'InvalidChar', '');
UPDATE table_name
SET column_name = REGEXP_REPLACE(column_name, '[^a-zA-Z0–9 ]', '');
5. Обработка выбросов
Чтобы определить и удалить выбросов, мы можем использовать функции AVG и STDDEV для расчета среднего и стандартного отклонения столбца.
SELECT AVG(column_name), STDDEV(column_name)
FROM table_name;
6. Корректировка форматов дат
Функция STR_TO_DATE может преобразовать строку в формат даты. Синтаксис функции следующий:
SELECT STR_TO_DATE(date_string, format_string)
FROM table_name;
7. Очистка текстовых данных
Функция REPLACE может заменить подстроку в строке. Функция TRIM позволяет удалить из строки ведущие и последующие пробелы. Синтаксис выглядит следующим образом:
SELECT UPPER(column_name)
FROM table_name;
SELECT REPLACE(column_name, 'old_string', 'new_string')
FROM table_name;
SELECT TRIM(column_name)
FROM table_name;
8. Проверка типов данных
Важно убедиться, что ваши данные имеют правильный тип данных. Для проверки и преобразования типов данных можно использовать функции CAST или CONVERT. Например:
SELECT CAST(column_name AS INT)
FROM table_name;
SELECT CONVERT(column_name, DATE)
FROM table_name;
@sqlhub
+----+-------+--------+--------------+
| Id | Name | Salary | DepartmentId |
+----+-------+--------+--------------+
| 1 | Joe | 70000 | 1 |
| 2 | Jim | 90000 | 1 |
| 3 | Henry | 80000 | 2 |
| 4 | Sam | 60000 | 2 |
| 5 | Max | 90000 | 1 |
+----+-------+--------+--------------+
В таблице Department содержатся сведения о подразделениях компании.
+----+----------+
| Id | Name |
+----+----------+
| 1 | IT |
| 2 | Sales |
+----+----------+
Напишите SQL-запрос, который находит в каждом из подразделений сотрудников с максимальной заработной платой. Например, для вышеприведённых таблиц подобный запрос должен возвращать результаты, представленные следующей таблицей (при этом порядок строк в таблице значения не имеет):
+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT | Max | 90000 |
| IT | Jim | 90000 |
| Sales | Henry | 80000 |
+------------+----------+--------+
▍Решение: команда IN
Команда IN позволяет задавать в инструкции WHERE условия, соответствующие использованию нескольких команд OR. Например, две следующие конструкции идентичны:
WHERE country = ‘Canada’ OR country = ‘USA’
WHERE country IN (‘Canada’, ’USA’).
Здесь мы хотим получить таблицу, содержащую название подразделения (Department), имя сотрудника (Employee) и его заработную плату (Salary). Для этого мы формируем таблицу, в которой содержатся сведения об идентификаторе подразделения (DepartmentID) и о максимальной зарплате по этому подразделению. Далее мы объединяем две таблицы по условию, в соответствии с которым записи в результирующую таблицу попадают только в том случае, если DepartmentID и Salary есть в ранее сформированной таблице.
SELECT
Department.name AS 'Department',
Employee.name AS 'Employee',
Salary
FROM Employee
INNER JOIN Department ON Employee.DepartmentId = Department.Id
WHERE (DepartmentId , Salary)
IN
( SELECT
DepartmentId, MAX(Salary)
FROM
Employee
GROUP BY DepartmentId
)
@sqlhub+---------+---------+
| id | student |
+---------+---------+
| 1 | Abbot |
| 2 | Doris |
| 3 | Emerson |
| 4 | Green |
| 5 | Jeames |
+---------+---------+
Вот что должно получиться после пересаживания соседних учеников:
+---------+---------+
| id | student |
+---------+---------+
| 1 | Doris |
| 2 | Abbot |
| 3 | Green |
| 4 | Emerson |
| 5 | Jeames |
+---------+---------+
Напишите запрос, который позволит учительнице решить вышеописанную задачу.
Обратите внимание на то, что если количество учеников является нечётным — последнего ученика никуда пересаживать не надо.
▍Решение: использование оператора WHEN
SQL-конструкцию CASE WHEN THEN можно рассматривать как оператор if в программировании.
В нашем случае первый оператор WHEN используется для проверки того, назначен ли последней строке в таблице нечётный идентификатор. Если это так — строка не подвергается изменениям. Второй оператор WHEN отвечает за добавление 1 к каждому нечётному идентификатору (например — 1, 3, 5 превращается в 2, 4, 6) и за вычитание 1 из каждого чётного идентификатора (2, 4, 6 превращаются в 1, 3, 5).
SELECT
CASE
WHEN((SELECT MAX(id) FROM seat)%2 = 1) AND id = (SELECT MAX(id) FROM seat) THEN id
WHEN id%2 = 1 THEN id + 1
ELSE id - 1
END AS id, student
FROM seat
ORDER BY id
@sqlhubDISTINCT. Однако, это простое решение не всегда будет верным.
Чтобы гарантировать отсутствие дубликатов в наборе данных, СУБД необходимо сравнить все строки друг с другом, отсеяв повторы. Это требует много ресурсов ЦП и памяти для хранения всех строк, т.к. их нужно сравнивать друг с другом в памяти, даже если на низком уровне идет работа с хэшем. Кроме того, DISTINCT уменьшает параллелизм вычислений, снижая скорость выполнения запроса.
DISTINCT удаляет дубликаты, но не разрешает неправильные соединения и фильтры, которые на практике чаще всего и приводят к повторам, например, из-за CROSS JOIN или использования RANK вместо ROW_NUMBER, что приводит к дублированию из-за плохо определенного окна раздела.
Подробности с примерами кода смотрите здесь: https://jmarquesdatabeyond.medium.com/sql-like-a-pro-please-stop-using-distinct-31bdb6481256
@sqlhub
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
