Помогите с AVG в Query with Left Join - PullRequest
0 голосов
/ 05 июня 2011

Мне нужна помощь, чтобы написать SQL-запрос, чтобы узнать среднюю позицию.

SELECT p.date_add, p.pozycja, f.nazwa FROM fraza f
LEFT JOIN pozycja p ON f.id = p.parent_id
WHERE f.parent_id = 101 AND p.date_add BETWEEN '2010-12-01' AND '2011-01-01'
ORDER BY f.nazwa DESC, p.date_add ASC
LIMIT 1000

Теперь я получил что-то вроде этого:

date_add   |  pozycja(position)  | nazwa(name)
2010-12-01          12               example1
2010-12-01          12               example2
2010-12-01          12               example3
2010-12-01          12               example4
2010-12-01          12               example5
2010-12-02          36               example1
2010-12-02          36               example2
2010-12-02          36               example3
2010-12-02          36               example4
2010-12-02          36               example5

как теперь получить что-то вроде этого:1007 *

     posisiton    | name
        24         example1
        24         example2
        24         example3
        24         example4
        24         example5

его средняя позиция по названию месяца

1 Ответ

3 голосов
/ 05 июня 2011
SELECT p.date_add, avg(p.pozycja) as avg_pozycja, f.nazwa FROM fraza f
LEFT JOIN pozycja p ON f.id = p.parent_id
WHERE f.parent_id = 101 AND p.date_add BETWEEN '2010-12-01' AND '2011-01-01'
GROUP BY f.nazwa
ORDER BY f.nazwa DESC, p.date_add ASC
...