【发布时间】:2020-09-02 10:25:31
【问题描述】:
我在 Athena 中尝试过,但我相信这也是一个正确的 SQL 查询。
我有一个带有channel 列的表,我想获得“每月频道的份额等于频道总数中的 1”。所以我考虑过使用条件语句,当它为 1 时放置 1,否则为 0,然后将其相加,这就像计算 1 的出现次数除以一个月的总数。
但它只是给了我零而不是实际的份额。查询有什么问题?
select
month,
count(),
sum(case when channel = 1 then 1 else 0 end) / count()
from table
where bla bla
group by 1 order by 1;
【问题讨论】:
-
在这种情况下,您可能需要使用嵌套查询:“内部”查询生成原始数字,“外部”查询生成摘要。或者,您可能需要
JOIN两个或更多子查询产生的结果。
标签: sql conditional-statements presto amazon-athena