Sql Oracle平均查询
有人会认为这很简单。我只想知道日期,计数和平均每天的任何时间范围。因此,在下面的示例中,我需要10天期间每天的计数和平均值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
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天的平均每天。。。。。。。。