
Добавил:
KaFaka
t.me
Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:4 курс 1 семестр / Лабораторные / Python / LR8_2
.py import psycopg2
import matplotlib.pyplot as plt
import numpy as np
conn = psycopg2.connect(
host="127.0.0.1",
database="students",
user="postgres",
password="123",
port="5432"
)
cur = conn.cursor()
cur.execute("""
WITH cte AS (
SELECT employees.job_id, job_title, salary
FROM employees
JOIN jobs ON employees.job_id = jobs.job_id
)
SELECT
CASE
WHEN job_title LIKE '%Manager%' THEN 'Manager'
WHEN job_title LIKE '%Clerk%' THEN 'Clerk'
WHEN job_title LIKE '%President%' THEN 'President'
ELSE 'Other'
END AS job_group,
MAX(salary) AS max_salary
FROM cte
GROUP BY job_group
ORDER BY max_salary DESC
""")
records = cur.fetchall()
job_groups = []
max_salaries = []
for record in records:
job_group = record[0]
max_salary = record[1]
job_groups.append(job_group)
max_salaries.append(max_salary)
x = np.arange(len(job_groups))
fig, ax = plt.subplots()
ax.bar(x, max_salaries)
ax.set_xticks(x)
ax.set_xticklabels(job_groups)
ax.set_ylabel("Максимальная зарплата")
ax.set_xlabel("Группа по должностям")
plt.title("Максимальная зарплата сотрудников по каждой группе")
plt.show()
conn.close()
import matplotlib.pyplot as plt
import numpy as np
conn = psycopg2.connect(
host="127.0.0.1",
database="students",
user="postgres",
password="123",
port="5432"
)
cur = conn.cursor()
cur.execute("""
WITH cte AS (
SELECT employees.job_id, job_title, salary
FROM employees
JOIN jobs ON employees.job_id = jobs.job_id
)
SELECT
CASE
WHEN job_title LIKE '%Manager%' THEN 'Manager'
WHEN job_title LIKE '%Clerk%' THEN 'Clerk'
WHEN job_title LIKE '%President%' THEN 'President'
ELSE 'Other'
END AS job_group,
MAX(salary) AS max_salary
FROM cte
GROUP BY job_group
ORDER BY max_salary DESC
""")
records = cur.fetchall()
job_groups = []
max_salaries = []
for record in records:
job_group = record[0]
max_salary = record[1]
job_groups.append(job_group)
max_salaries.append(max_salary)
x = np.arange(len(job_groups))
fig, ax = plt.subplots()
ax.bar(x, max_salaries)
ax.set_xticks(x)
ax.set_xticklabels(job_groups)
ax.set_ylabel("Максимальная зарплата")
ax.set_xlabel("Группа по должностям")
plt.title("Максимальная зарплата сотрудников по каждой группе")
plt.show()
conn.close()
Соседние файлы в папке Python