登場するカラムを全て、VARCHARに変換し、結合します。
それをGroupByでまとめてカウントすることで、重複しているレコードを探し出します。
サンプルはPestroです。
COALESCEをつけているのは、値がNULLの場合はCONCATした結果もNULLになってしまうので。
SELECT
CONCAT(
COALESCE(json_format(CAST(order_info AS JSON)), ''),
COALESCE(CAST(order_date AS VARCHAR), ''),
COALESCE(CAST(customer_id AS VARCHAR), '')
) AS concat_value,
COUNT(*)
FROM "sample_db"."order_table"
GROUP BY
CONCAT(
COALESCE(json_format(CAST(order_info AS JSON)), ''),
COALESCE(CAST(order_date AS VARCHAR), ''),
COALESCE(CAST(customer_id AS VARCHAR), '')
)
HAVING COUNT(*) >= 2;
