如何获得每个 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;
通过以下查询,我可以获得 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;