我有一个包含以下架构的SQL表:
{playerId,playSessionLength,timestamp}
我想在一定时间范围内找到不到10秒的比赛时间。
我知道怎么做这个丑陋,有两个问题:
select count(*) from playData where timestamp > start and timestamp < end
select count(*) from playData where timestamp > start and timestamp < end and playSessionLength < 10
然后进行B / A的划分。
我的问题是,使用单个查询执行此操作的最干净,最优雅的方法是什么?
答案 0 :(得分:1)
我会尝试:
select 100*count(case when playSessionLength < 10 then 1 else null end)/count(*)
from playData
where timestamp > start and timestamp < end
...但要注意count(*)= 0