Skip to content

Instantly share code, notes, and snippets.

@ursuleacv
Last active January 6, 2018 17:30
Show Gist options
  • Save ursuleacv/50104fe887eae318bc18 to your computer and use it in GitHub Desktop.
Save ursuleacv/50104fe887eae318bc18 to your computer and use it in GitHub Desktop.
Finding duplicate values in MySQL
SELECT nickname, COUNT(*) c FROM nickname_source GROUP BY nickname HAVING c > 1;
SELECT slugname, COUNT(*) c FROM slug GROUP BY slugname HAVING c > 1;
# duplicate campaigns
SELECT
entity_campaign_pk,
campaign_name,
offers_campaigned,
options,
COUNT(*) c
FROM
entity_campaign
WHERE
enabled = 1
GROUP BY
options
HAVING
c > 1;
SELECT
id,
user.email,
phone
FROM user
INNER JOIN (SELECT email
FROM user
WHERE signedupat_fk=678
GROUP BY email
HAVING COUNT(id) > 1) dup
ON user.email = dup.email
WHERE signedupat_fk=678;
SELECT
id,
user.phone,
email
FROM user
INNER JOIN (SELECT phone
FROM user
WHERE signedupat_fk=678
GROUP BY phone
HAVING COUNT(id) > 1) dup
ON user.phone = dup.phone
WHERE signedupat_fk=678;
-- Duplicates in All users by phone
SELECT
id,
enabled,
user.phone,
user.country_phone_fk,
email,
user.utc_created,
user.signedupat_fk,
user.platform_solution_fk
FROM user
INNER JOIN (SELECT phone
FROM user
WHERE phone > 0
GROUP BY phone
HAVING COUNT(id) > 1) dup
ON user.phone = dup.phone
WHERE user.phone > 0;
# shows each row that is a duplicate.
SELECT firstname,
lastname,
list.address
FROM list
INNER JOIN (SELECT address
FROM list
GROUP BY address
HAVING COUNT(id) > 1) dup
ON list.address = dup.address;
-- Find duplicated sales for account
SELECT
ps.pos_sale_pk,
ps.account_id,
ps.sale_id,
ps.sale_customer_id,
ps.user_fk,
ps.utc_created
FROM pos_sale ps
INNER JOIN (SELECT account_id, sale_id
FROM pos_sale
GROUP BY account_id, sale_id
HAVING COUNT(pos_sale_pk) > 1) duplicated
ON ps.account_id = duplicated.account_id AND ps.sale_id = duplicated.sale_id;
-- Duplicated transactions
SELECT
t.transaction_pk,
t.user_fk,
t.transaction_sub_type_fk
FROM
`transaction` t
INNER JOIN (
SELECT
transaction_pk,
user_fk
FROM
`transaction`
WHERE
entity_fk = 12345678
GROUP BY
user_fk
HAVING
COUNT(transaction_pk) > 1
) duplicated ON t.user_fk = duplicated.user_fk
WHERE
t.entity_fk = 12345678;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment