只计算一个条目的第一条记录为1
问题描述:
我一直在寻找,但找不到结果。也许我没有设法说好,请全部原谅。只计算一个条目的第一条记录为1
这里是一个样本的数据让我有这样的策略表
policy_Id name deleted invoice number amount
2341 jeffa 0 po02345 £10.00
2342 jeffa 0 po02345 £0.00
2343 jeffa 0 po02345 £5.00
6348 kross 0 po84762 £2.00
4723 mad 0 po67452 £3.00
结果我期待将这个样子
policy_Id name deleted invoice number amount Count_policy Added
2341 jeffa 0 po02345 £10.00 1
2341 jeffa 0 po02345 £0.00 0
2341 jeffa 0 po02345 £5.00 0
6348 kross 0 po84762 £2.00 1
4723 mad 0 po67452 £3.00 1
我希望能够与MS SQL查询来做到这一点。对于发票号码。 po2345,金额列有3个条目。我想算1为第一和零对剩余的2
感谢所有
答
你可以这样说:
SELECT policy_Id, name, deleted, invoice_number, amount, CASE ROW_NUMBER() OVER (PARTITION BY policy_Id ORDER BY someId) WHEN 1 THEN 1 ELSE 0 END Count_Policy
FROM your_table
ORDER BY policy_Id
随着ROW_NUMBER()
,你可以算后的行数“幕后“分组和整理。
在ORDER BY
我使用someId
,你应该指定那里给出你的当前顺序的字段,这是你的代码不清楚。该订单将定义共享policy_Id
中的哪一个记录将具有Count_policy = 1
。
你有所有相关表的表定义吗?还有你已经试过的查询了吗? – Myonara
好吧我会在今天看到,看起来和我正在处理的数据非常相似。谢谢 – user3011898