使用GROUP(或DISTINCT)和AVG显示所有记录中数据的正确语法是什么?
我的数据如下: 表名:Pensje 列: ID,公司,职位,薪水
Example:
ID Company Position Salary
1 Atari Designer 24000
2 Atari Designer 20000
3 Atari Programmer 35000
4 Amiga Director 40000
我需要以这种方式安排数据(只需要显示1家公司的记录)
Position a , average Salary from all the records with same Company and Position
Position b , average Salary from all the records with same Company and Position
Ex. Atari
Designer, 22000
Programmer, 35000
我的SQL看起来像这样:
SELECT Position, AVG(Salary)
FROM Pensje
WHERE Company = %s
GROUP BY Position
ORDER BY Position ASC
在上面的例子中"位置"正确显示,"薪水"完全没有显示,而在删除后显示AVG()但只显示在表
中的第一个位置非常感谢您花时间帮助我!
答案 0 :(得分:1)
从MCP_infiltrator发布答案,帮助:
在您的WHERE子句中,您应该使用WHERE公司LIKE'%s'不是你写的方式,应该产生你想要的结果,所以我不明白为什么它不适合你。 您可能还希望将AVG()结果设为别名,例如AVG(Salary)AS Average_Salary,否则您的列将无需名称进行梳理。