diff --git a/scripts/sql/31802801_role_group_data_corruption.down.sql b/scripts/sql/31802801_role_group_data_corruption.down.sql
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/scripts/sql/31802801_role_group_data_corruption.up.sql b/scripts/sql/31802801_role_group_data_corruption.up.sql
new file mode 100644
index 0000000000..e9303e6672
--- /dev/null
+++ b/scripts/sql/31802801_role_group_data_corruption.up.sql
@@ -0,0 +1,13 @@
+-- Have deleted duplicate entries in role_group_role_mapping which got created on save/update of role group.
+-- have partitioned by role_group_id, role_id and filtered only those rows which have row number >1 as first entry will have row number 1
+
+DELETE FROM role_group_role_mapping
+WHERE ctid IN (
+    SELECT ctid
+    FROM (
+             SELECT ctid,
+                    ROW_NUMBER() OVER (PARTITION BY role_group_id, role_id ORDER BY ctid) AS rn
+             FROM role_group_role_mapping
+         ) AS subquery
+    WHERE rn > 1
+);
\ No newline at end of file