SQL AVG函数

时间:2016-11-30 13:58:43

标签: sql average

使用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()但只显示在表

中的第一个位置

非常感谢您花时间帮助我!

1 个答案:

答案 0 :(得分:1)

从MCP_infiltrator发布答案,帮助:

在您的WHERE子句中,您应该使用WHERE公司LIKE'%s'不是你写的方式,应该产生你想要的结果,所以我不明白为什么它不适合你。 您可能还希望将AVG()结果设为别名,例如AVG(Salary)AS Average_Salary,否则您的列将无需名称进行梳理。