sql—一个数量少于200的时间有多长

xzlaal3s  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(313)

我需要确定有多长时间金额低于200。
我的数据集看起来像

Id user time amount max_amount
25 3618  1    0        1
25 3618  1    17040    3
25 3618  1    30       2
27 4281  1    0        1
27 4281  1    14188    3
27 4281  1    17372    4
27 4281  1    190      2

等等
生成它的代码如下:

Select t2.id, t2.user, t1.time, sum(t1.amount_amt as float) / (t1.eur_amt as float) as amount,
rank () over (partition by t2.user order by amount) max_amount
From table1
Inner join table2 as t2
on t1.user=t2.user
Group by 1,2,3

我的预期产出是

Id user time spent  
    25 3618  1    2
    27 4281  1    2

我怎样才能得到这个结果?

xu3bshqb

xu3bshqb1#

我想你只需要过滤和聚合:

select id, user, time, count(*)
from t
where amount < 200
group by id, user, time;

如果该表是由问题中的代码生成的,则可以在上述查询之前使用cte:

with t as (
      <query>
     )

相关问题