我对查询结果感到困惑,并试图了解它的可能性
我有一张每次摘花的记录表:
WITH unique_picks AS(
SELECT
date(pick_timestamp_local) as date
,flower_species
FROM all_picks
WHERE country_id = 1
),
proportions AS(
select
date
, flower_species
, 100. * count(*) / sum(count(*)) over () as prop
from unique_picks
group by 1,2
ORDER BY 1
)
SELECT
date
,sum(prop) as total_proportions
FROM proportions
GROUP BY date
ORDER BY date
每天总是有不止一个采摘(从来没有0),所以每种花的每天比例总和应该等于1,对吗?考虑到我按日期分组,他们怎么可能不这样做?
但是,结果数据集如下所示:
date total_proportions
1 2018-07-16 0.286
2 2018-07-17 0.646
3 2018-07-18 0.591
4 2018-07-19 0.656
5 2018-07-20 0.635
6 2018-07-21 0.699
鉴于上述查询,这怎么可能?我在做什么错?
答案 0 :(得分:1)
这是推测,但我认为您没有显示完整的数据集。
如果您运行:
select sum(prop)
from proportions
那么您应该得到100左右。因为您将比例乘以100。
该总和为100,无论分配多少天。您的第一行是说0.286%的花朵是在2018-07-16采摘的,依此类推。我只是认为结果集缺少一排会导致总和为100的行。