只计算一个条目的第一条记录为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

感谢所有

+0

你有所有相关表的表定义吗?还有你已经试过的查询了吗? – Myonara

+0

好吧我会在今天看到,看起来和我正在处理的数据非常相似。谢谢 – user3011898

你可以这样说:

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