0
使用GROUP(或DISTINCT)和AVG显示来自所有记录的数据的正确语法是什么?SQL 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()之后,但仅第一个位置在表中找到
非常感谢花时间帮助我!
'公司=%s' - >应该是'LIKE',但是..你期望得到什么?没有适合此过滤器的记录。 – sagi
在你的'WHERE'子句中,你应该使用'WHERE Company LIKE'%s''不是'='你写它的方式应该产生你想要的结果,所以我不明白它为什么不能正确地为你工作。您可能还想像'AVG(Salary)AS Average_Salary'这样的'AVG()'结果别名,否则您的列将无名称地进行组合。 –
它是别名!谢谢MCP_infiltrator! – Piotrek