Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
24.10.2023
Размер:
1.15 Кб
Скачать
import matplotlib.pyplot as plt
import numpy as np
import psycopg2

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
""")

results = cur.fetchall()

x = [result[0] for result in results]
y = [result[1] for result in results]

plt.barh(x, y, color=['red', 'green', 'blue', 'purple'])
plt.xlabel("Максимальная зарплата")
plt.ylabel("Группа по должностям")
plt.title("Максимальная зарплата сотрудников по каждой группе")

plt.show()

cur.close()
conn.close()
Соседние файлы в папке Python