1

我有三个值的实时数据:id、name、salary。我正在使用姓名和薪水为其绘制图表。

def graph():
    con = None
    try:
        con = connect("project.db")
        cursor = con.cursor()
        sql = "select name, salary from employee"
        cursor.execute(sql)
        data = cursor.fetchall()
        name = []
        salary = []
        for i in data:
            name.append(i[0])
            salary.append(i[1])
        plt.bar(name, salary)
        plt.xlabel("Names of Employee")
        plt.ylabel("Salary of Employee")
        plt.title("Top 5 Highest Salaried Employee")
        plt.show()
    except Exception as e:
        showerror("issue ", e)
        con.rollback()
    finally:
        if con is not None:
            con.close()

但我的问题是:我得到所有员工的条形图。我只想为收入最高的 5 名员工进行绘图。有没有办法做到这一点?

4

1 回答 1

2

您可以按薪水升序对 SQL 查询中的结果进行排序,然后只取前五个结果。

尝试'''SELECT name, salary FROM employee ORDER BY salary DESC LIMIT 5'''

于 2021-10-16T19:12:14.910 回答