Каков правильный синтаксис для отображения данных из всех записей с помощью 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
My SQL выглядит следующим образом:
SELECT Position, AVG(Salary)
FROM Pensje
WHERE Company = %s
GROUP BY Position
ORDER BY Position ASC
В приведенном выше примере «Position» отображается правильно, «зарплата» не отображается на всех, в то время как после удаления AVG() отображается, но только первая позиция содержится в таблице
Большое спасибо за не торопитесь, чтобы помочь мне!
'Company =% s' -> Должно быть' LIKE', но .. что вы ожидаете получить? Для этого фильтра нет записи. – sagi
В предложении 'WHERE' вы должны использовать' WHERE Company LIKE '% s'' not '=' То, как вы его написали, должно привести к результатам, которые вы хотите, поэтому я не понимаю, почему он не работает должным образом для вас , Вы также можете захотеть получить псевдоним ваших результатов AVG(), таких как «AVG (Salary) AS Average_Salary», иначе ваша колонка будет перехватывать без имени. –
ЭТО БЫЛО АЛИАС! Спасибо, MCP_infiltrator! – Piotrek