我需要为这个标题道歉。我花了很多心思,但没有走太远。
我有一个看起来像这样的表:
+--------------------------------------+--------------------------------------+--------------------------------------+--------------------------------------+--------+ | accountid | pricexxxxxid | accountid | pricelevelid | counts | +--------------------------------------+--------------------------------------+--------------------------------------+--------------------------------------+--------+ | 36B077D4-E765-4C70-BE18-2ECA871420D3 | 00000000-0000-0000-0000-000000000000 | 36B077D4-E765-4C70-BE18-2ECA871420D3 | F43C47CE-28C6-42E2-8399-92C58ED4BA9D | 1 | | EBC18CBC-2D2E-44CB-B36A-0ADE9E2BDE9F | 00000000-0000-0000-0000-000000000000 | EBC18CBC-2D2E-44CB-B36A-0ADE9E2BDE9F | 3BEEA9D3-F26B-47E4-88FA-A2AA366980ED | 1 | | 8DC8D0FC-3138-425A-A922-2F0CAC57E887 | 00000000-0000-0000-0000-000000000000 | 8DC8D0FC-3138-425A-A922-2F0CAC57E887 | F1B8AD5D-B008-4C3F-94A0-AD3F90C777D7 | 1 | | 8F908A92-1327-4655-BAE4-C890D971A554 | 00000000-0000-0000-0000-000000000000 | 8F908A92-1327-4655-BAE4-C890D971A554 | 2E0EC67E-5F8F-4305-932E-BBF8DF83DBEC | 1 | | 37221AAC-B885-4002-B7D9-591F8C14D019 | 00000000-0000-0000-0000-000000000000 | 37221AAC-B885-4002-B7D9-591F8C14D019 | F4A2A0CA-FDFF-4C21-AE92-D4583DC18DED | 1 | | 66F406B4-0D9B-40B8-9A23-119EE74B00B7 | 00000000-0000-0000-0000-000000000000 | 66F406B4-0D9B-40B8-9A23-119EE74B00B7 | 204B8570-CEBA-4C72-9B72-8B9B14AF625E | 2 | | D0168CE3-479E-439E-967C-4FF0D701291A | 00000000-0000-0000-0000-000000000000 | D0168CE3-479E-439E-967C-4FF0D701291A | 204B8570-CEBA-4C72-9B72-8B9B14AF625E | 2 | | 57E5F6E5-0A8A-4E54-B793-2F6493DC1EA3 | 00000000-0000-0000-0000-000000000000 | 57E5F6E5-0A8A-4E54-B793-2F6493DC1EA3 | 893F9FD2-43C9-4355-AEFC-08A62BF2B066 | 3 | +--------------------------------------+--------------------------------------+--------------------------------------+--------------------------------------+--------+
按升序排序 。
我想用其对应的pricelevelid更新全部为00000000-0000-0000-0000-0000-000000000000的pricexxxxid。
例如,对于accountid = 36B077D4-E765-4C70-BE18-2ECA871420D3, 我希望pricexxxxid为 F43C47CE-28C6-42E2-8399-92C58ED4BA9D。
完成此操作后,我希望删除此帐户之后的所有记录,其中accountid = 36B077D4-E765-4C70-BE18-2ECA871420D3 。
换句话说,我将得到一个唯一的价格为pricexxxxid的帐户ID列表,并为其分配来自pricelevelid的相应值。
非常感谢您的指导。
对于您的第一种情况!
update table set pricexxxxids=pricelevelid.
如果我正确理解您的第二种情况:(删除重复项/选择不重复项)?
delete from ( select *,rn=row_number()over(partition by accountid order by accountid) from table )x where rn>1 --select distinct * from table
已编辑
select * from ( select *,rn=row_number()over(partition by accountid order by accountid) from table )x where x.rn=1
更新
SELECT accountid,pricelevelid FROM ( (SELECT *, Row_number() OVER ( partition BY accountid ORDER BY counts, pricelevelid ) AS Recency FROM table )x WHERE x.Recency = 1