一家公司的数据,又更新了一版时,状态status字段值会加1,现在想报表页面展示状态是最大的公司数据,其中包含了年月,指标等字段,更新时,变更的是金额数据,数据集的sql该咋写呢
Oracle为例
select 年月,金额,status
from (select 年月,金额,status,
row_number()over(partition by 年月 order by to_number(status) desc) as seq
from table
) t
where t.seq = 1
如果除了年月还有其他维度也需要补充上,status如果是字符串类型,需要to_number(),如果是数字类型就不用
SqlServer为例
SELECT * FROM TABLE A
INNER JOIN (SELECT 公司,max(status) [max_] FROM TABLE GROUP BY 公司) B
on a.公司=b.公司 and a.status=b.max_