усреднение строк с одинаковым идентификатором - PullRequest
2 голосов
/ 20 июля 2011

У меня есть три таблицы, и я сделал объединения, чтобы возвращать результаты [ID] : [number] на строку, все это работает нормально, но проблема в том, что некоторые строки будут иметь одинаковые [ID], поэтому пример данных, которые могут быть возвращены:

1 : 564
2 : 34
3 : 76
2 : 985
2 : 47
1 : 4

и так далее ... но я хочу получить следующее:

1 : 284
2 : 355
3 : 76

, поскольку вы можете видеть, что строки с одинаковыми [ID] были усреднены.Мой вопросЕсть ли способ сделать это в SQL?Как бы я это сделал?Спасибо за ваше время.

Запрос

SELECT T1.id, T2.number 
FROM T1 
LEFT JOIN T3 ON T3.T1_id = T1.id 
LEFT JOIN T2 ON T3.T2_id = T2.id

Ответы [ 3 ]

6 голосов
/ 20 июля 2011
SELECT ID, AVG(number) FROM table GROUP BY ID

Средняя совокупная функция

1 голос
/ 20 июля 2011

Используя то, что отправил @cularis, и свой запрос, который вы добавили, вы бы использовали

SELECT T1.id, Avg(T2.number)
FROM T1 
LEFT JOIN T3 ON T3.T1_id = T1.id 
LEFT JOIN T2 ON T3.T2_id = T2.id
GROUP BY T1.id
0 голосов
/ 20 июля 2011

Догадываюсь, так как вы еще не разместили свой запрос:

select ID, avg(number)
from <your query>
group by ID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...