Sql Oracle平均查询

Sql Oracle平均查询,sql,oracle,average,Sql,Oracle,Average,有人会认为这很简单。我只想知道日期,计数和平均每天的任何时间范围。因此,在下面的示例中,我需要10天期间每天的计数和平均值 SELECT date_added, 10 / customer_cnt AS average FROM (SELECT TRUNC(date_added) AS date_added, ROW_NUMBER() OVER (PARTITION BY TRUNC(date_added) ORDER BY TRUNC(date_added)) AS

有人会认为这很简单。我只想知道日期,计数和平均每天的任何时间范围。因此,在下面的示例中,我需要10天期间每天的计数和平均值

SELECT date_added, 10 / customer_cnt AS average
FROM (SELECT TRUNC(date_added) AS date_added, 
             ROW_NUMBER() OVER (PARTITION BY TRUNC(date_added) ORDER BY TRUNC(date_added)) AS  rnum,
             COUNT(*) OVER (PARTITION BY TRUNC(date_added)) AS customer_cnt
     FROM payments_log
     WHERE action = 'get_cc_info'
       AND TRUNC(date_added) >= TRUNC(SYSDATE) - 10)
WHERE rnum = 1;
但是我没有得到任何接近我期望的东西。

我不知道“平均每天”是什么意思。我想你只是想要伯爵:

SELECT TRUNC(date_added) AS date_added, 
        COUNT(*) as day_count
FROM payments_log
WHERE action = 'get_cc_info' AND
      date_added >= TRUNC(SYSDATE) - INTERVAL '10' day
GROUP BY TRUNC(date_added);
如果您想要此期间的平均值(即结果集中的一行),则需要如下内容:

SELECT COUNT(*) / 10 as daily_average
       COUNT(*) / COUNT(DISTINCT TRUNC(date_added) daily_average_on_days_with_data
FROM payments_log
WHERE action = 'get_cc_info' AND
      date_added >= TRUNC(SYSDATE) - INTERVAL '10' day;

请提供样本数据和预期结果。不是一行,而是基于10天的平均每天。。。。。。。。