Как получить средние пробеги для каждого за SQL? - PullRequest
0 голосов
/ 04 апреля 2020

Первые шесть шаров означают первое повторение, следующие шесть шаров означают второе повторение и т. Д., Чем то, как получить средние пробеги для каждого повторения.

ввод как

Ball no     Runs
1           4
2           6
3           3
4           2
5           6
6           1
1           2
2           4
3           6
4           3
5           1
6           1 
1           2

должен быть :

Over no  avg runs
1         3.66
2         2.83

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Мне удалось решить мою проблему с помощью следующего запроса:

SELECT ROWNUM OVER_NO, AVG_RUNS
FROM(
     SELECT ROWNUM RN, 
     ROUND(AVG(RUNS)OVER(ORDER BY ROWNUM RANGE BETWEEN CURRENT ROW AND 5 FOLLOWING),2) AVG_RUNS
     FROM TABLE_NAME
    )
WHERE RN=1 OR RN=7;
0 голосов
/ 04 апреля 2020

Как предположил Гордон Линофф, таблица SQL представляет неупорядоченные множества, поэтому вы должны использовать упорядоченный столбец в вашей таблице. Если вы можете использовать такой столбец, вы можете использовать следующий запрос -

SELECT Over_no  AVG(Runs) avg_runs
FROM (SELECT Ball_no, Runs, CEIL(ROW_NUMBER() OVER(ORDER BY ORDER_COLUMN, Ball_no) RN / 6) Over_no
      FROM YOUR_TABLE)
GROUP BY Over_no;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...