从内部表的结果集中获取平均值

时间:2017-09-13 13:26:50

标签: sql sqlite

我想得到每周的平均值。为此,我首先计算当天子查询和组中的每日出现次数。然后我想平均每一天,并根据周数对它们进行分组。但是它没有给出预期的结果。

select avg(d.dayilyCount)
from (
      select count(*) as dayilyCount, timestamp as inner_T 
            from steps 
                group by strftime('%D', timestamp / 1000, 'unixepoch', 'localtime')
) d 
  group by strftime('%W', d.inner_T/ 1000, 'unixepoch', 'localtime')

任何提示?

由于

编辑:

我想要的样本数据和结果:

-time-steps-
Day 1|Step 1|
Day 1|Step 1|
Day 2|Step 1|
Day 2|Step 1|
Day 2|Step 1|

-time-count-       this is the subquery
Day 1|Step 2|<----imagine this is week 1
Day 2|Step 3|<----imagine this is week 4

然后我想要每周的平均值和按内部表计数返回的时间戳的周数组。

time  |avg      what I want
week 1| 1.0
week 4| 3.0

我得到了什么:

time  |avg  
week n| 4.0

我只得到一个结果而不是两个结果,即使我计算了不同的周数并在内部结果集中进行了分组。

编辑2:

我发现了问题,我在strftime()函数中使用了大写字母D而不是'%d'

 select avg(d.dayilyCount) 
from(
select count(*) as dayilyCount, timestamp as dt, strftime('%d-%W-%m-%Y',     timestamp / 1000, 'unixepoch', 'localtime') as dwmy from steps group by dwmy
) d
group by strftime('%W-%m-%Y', d.dt / 1000, 'unixepoch', 'localtime')

加上我没有按特定日期,年份或月份进行分组。

0 个答案:

没有答案