Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

How to remove duplicate rows based on condition

Hi all,   I have a employee history table. I noticed some duplicated rows. How can I remove the duplicated row, based on the condition: 1. The same Employee Number 2.  Chg Rsn="901"?  (901 means ...
  • ValtteriN's avatar
    3 years ago

    Hi,

    Here is one way to do this:

    Example (we will remove one of the rows in yellow):



    Here is the PQ used:

    let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQyVtJRsjQwVIrVweSZgHlGWHmmWHhAfbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Empid = _t, code = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Empid", Int64.Type}, {"code", Int64.Type}}),
    #"Filtered Rows1" = Table.SelectRows(#"Changed Type", each [code] <> 901), //this table contains non 901 rows
    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each [code] = 901),
    #"Removed Duplicates" = Table.Distinct(#"Filtered Rows", {"Empid"}), //this table contains non unique 901 rows
    #"Appended Query" = Table.Combine({#"Removed Duplicates", #"Filtered Rows1"}) //here we combine the two to get the desired result
    in
    #"Appended Query"

    End result:

     

    As we can see the non-desired row is now removed.

    I hope this post helps to solve your issue and if it does consider accepting it as a solution and giving the post a thumbs up!

    My LinkedIn: https://www.linkedin.com/in/n%C3%A4ttiahov-00001/