Sobes.tech
Middle
17

Вывести топ-3 навыка по средней зарплате специалистов, у которых есть этот навык (навыки хранятся в виде строки через запятую)

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Для решения задачи нужно разбить строку навыков на отдельные элементы, сгруппировать специалистов по каждому навыку и вычислить среднюю зарплату для каждой группы. Затем отсортировать навыки по средней зарплате и вывести топ-3.

Пример на SQL (предполагается, что есть таблица employees с полями skills (строка с навыками через запятую) и salary):

WITH skill_list AS (
  SELECT
    TRIM(skill) AS skill,
    salary
  FROM employees,
  UNNEST(string_to_array(skills, ',')) AS skill
)
SELECT skill, AVG(salary) AS avg_salary
FROM skill_list
GROUP BY skill
ORDER BY avg_salary DESC
LIMIT 3;

Если используется Python и pandas, то можно сделать так:

import pandas as pd

data = pd.DataFrame({
    'skills': ['Python,SQL,ML', 'Java,SQL', 'Python,ML', 'C++,Python'],
    'salary': [100000, 90000, 110000, 95000]
})

# Разбиваем навыки и создаем новую таблицу
skills_expanded = data.assign(skill=data['skills'].str.split(',')).explode('skill')
skills_expanded['skill'] = skills_expanded['skill'].str.strip()

# Группируем и считаем среднюю зарплату
result = skills_expanded.groupby('skill')['salary'].mean().sort_values(ascending=False).head(3)
print(result)

Таким образом можно получить топ-3 навыка по средней зарплате специалистов, владеющих ими.