我一直在寻找答案,但似乎没有人有类似的问题,我决定把它张贴在这里。
我有一个表,表中有200条重复值的记录 fix_id
列,在列timestamp中,每个记录都有一个从1到5的值,在最后一列中我得到了年龄值。
我喜欢为中具有相同id的每个组选择 fix_id
列同时保持timestamp列中的max值age列的平均值,还有一个棘手的地方,age列有时可以有值0,在这种情况下,我喜欢跳过这个值。
fix_id timestamp age
10 2 0
10 2 2
10 4 0
10 4 1
10 4 3
5 4 2
5 4 4
5 3 10
所以从这个表,我想得到这个结果
fix_id timestamp age
10 4 2
5 4 3
因此,如果年龄列中有0,我不想在计算平均值时包含它。
这有可能吗?
2条答案
按热度按时间iqih9akk1#
一种方法是带有筛选的聚合查询:
vlju58qv2#
如果在查询中设置如下条件:
那么您将错过max timestamp只包含
0
在列中的age
你不会明白的fix_id
在结果中。所以使用条件聚合:
请看演示。
结果: