Как рассчитать среднее значение после четкого подсчета? - PullRequest
1 голос
/ 16 января 2020

Я хотел бы взять среднее после подсчета отчетливо.

Вот мой текущий запрос:

SELECT product_id,
         COUNT(DISTINCT shop_id) AS shops,
         year,
         month,
         day
FROM X
GROUP BY  product_id, year, month, day

Но теперь я хочу взять среднее по магазинам. Я пробовал что-то вроде этого, но я получаю эту ошибку: invalidrequestexception

SELECT product_id,
         AVG(COUNT(DISTINCT shop_id) AS shops) as avg_shops,
         year,
         month,
         day
FROM X
GROUP BY  product_id, year, month, day

Ответы [ 2 ]

5 голосов
/ 16 января 2020

попробуйте как показано ниже

with cte as
(
SELECT product_id,
         COUNT(DISTINCT shop_id) AS shops,
         year,
         month,
         day
FROM X
GROUP BY  product_id, year, month, day
) select product_id,
         AVG(shops) AS  as avg_shops,
         year,
         month,
         day
FROM cte
GROUP BY  product_id, year, month, day 
0 голосов
/ 16 января 2020

Если вы просто хотите получить среднее значение, используйте подзапрос:

SELECT AVG(shops)
FROM (SELECT product_id, COUNT(DISTINCT shop_id) AS shops
      FROM X
      GROUP BY product_id, year, month, day
     ) x
...