如何获得每个 id 的每个观察日期的观察编号

How can I get the observation number for each observation date for each id

通过以下查询,我可以获得 table 中每个 ani_id 的观察次数:

select ani_id, obs_date, count(ani_id) OVER (PARTITION BY ani_id) as obs_nb 
from v_metadata_all group by ani_id, cap_date
ani_id obs_date obs_nb
2855 2005-06-15 1
2856 2005-06-15 1
2857 2005-06-15 2
2857 2009-08-28 2
2858 2005-08-11 1

我怎样才能得到 obs_nb 作为每个 ani_id 的先前观测值的总和(ani_id 在这个 table 中可以有 1 到 5 个观察值,不仅2)

ani_id obs_date obs_nb
2855 2005-06-15 1
2856 2005-06-15 1
2857 2005-06-15 1
2857 2009-08-28 2
2858 2005-08-11 1

谢谢

我想你想在这种情况下使用 ROW_NUMBER,而不是 COUNT:

SELECT ani_id, obs_date,
       ROW_NUMBER() OVER (PARTITION BY ani_id ORDER BY obs_date) AS obs_nb
FROM v_metadata_all;