Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Find the distinct with different string values from SQL select

I want to remove the duplicate rows Using Select Query how can I get rid of the duplicate rows.

The following out put produces redundant records, How to get the distinct results?

SELECT E.EMAIL_ID, T.FIRST_NAME, T.LAST_NAME, CY.COUNTRY_ID 
FROM PLAYER P
INNER JOIN PLAYERTYPE T ON P.PLAYER_ID = T.PLAYER_ID
INNER JOIN PLAYER_CONTACT C ON T.PLAYER_ID = C.PLAYER_ID 
INNER JOIN CONTACT_EMAIL E ON E.CONTACT_ID = C.CONTACT_ID
INNER JOIN COUNTRY_TABLE CY ON P.COUNTRY_ID = CY.COUNTRY_ID
WHERE CY.COUNTRY_CODE='AUS'
AND T.PLAYER_TYPE IN ('NEW', 'EXE')

Current Output:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

FIRST_NAME LAST_NAME EMAIL_ID COUNTRY_ID
MARK CLARKSON dfgh@gmail.com 04
MARK CLARKSON DFGH@GMAIL.com 04
CATH SPEARS tygh@yahoo.com 04
FESS LOPEZ fgvhb@yandex.com 04
FEXS LOPEZ byvg@google.com 04
FEXS LOPEZ BYVG@GOOGLE.COM 04
EOVA SMITH ghjkjh@sdf.com 04

Expected Output:

FIRST_NAME LAST_NAME EMAIL_ID COUNTRY_ID
MARK CLARKSON dfgh@gmail.com 04
CATH SPEARS tygh@yahoo.com 04
FESS LOPEZ fgvhb@yandex.com 04
FEXS LOPEZ BYVG@GOOGLE.COM 04
EOVA SMITH ghjkjh@sdf.com 04

Tried

SELECT DISTINCT E.EMAIL_ID, T.FIRST_NAME, T.LAST_NAME, CY.COUNTRY_ID 
FROM PLAYER P
INNER JOIN PLAYERTYPE T ON P.PLAYER_ID = T.PLAYER_ID
INNER JOIN PLAYER_CONTACT C ON T.PLAYER_ID = C.PLAYER_ID 
INNER JOIN CONTACT_EMAIL E ON E.CONTACT_ID = C.CONTACT_ID
INNER JOIN COUNTRY_TABLE CY ON P.COUNTRY_ID = CY.COUNTRY_ID
WHERE CY.COUNTRY_CODE='AUS'
 AND T.PLAYER_TYPE IN ('NEW', 'EXE')

SELECT T.FIRST_NAME, T.LAST_NAME, E.EMAIL_ID, CY.COUNTRY_ID 
FROM PLAYER P
INNER JOIN PLAYERTYPE T ON P.PLAYER_ID = T.PLAYER_ID
INNER JOIN PLAYER_CONTACT C ON T.PLAYER_ID = C.PLAYER_ID 
INNER JOIN CONTACT_EMAIL E ON E.CONTACT_ID = C.CONTACT_ID
INNER JOIN COUNTRY_TABLE CY ON P.COUNTRY_ID = CY.COUNTRY_ID
WHERE CY.COUNTRY_CODE='AUS'
AND T.PLAYER_TYPE IN ('NEW', 'EXE')
GROUP BY T.FIRST_NAME, T.LAST_NAME, E.EMAIL_ID, CY.COUNTRY_ID 

Here is the fiddle.

>Solution :

Try using DISTINCT + LOWER:

SELECT DISTINCT T.FIRST_NAME, 
                T.LAST_NAME, 
                LOWER(E.EMAIL_ID) AS EMAIL_ID, 
                CY.COUNTRY_ID 
FROM PLAYER P
INNER JOIN PLAYERTYPE T ON P.PLAYER_ID = T.PLAYER_ID
INNER JOIN PLAYER_CONTACT C ON T.PLAYER_ID = C.PLAYER_ID 
INNER JOIN CONTACT_EMAIL E ON E.CONTACT_ID = C.CONTACT_ID
INNER JOIN COUNTRY_TABLE CY ON P.COUNTRY_ID = CY.COUNTRY_ID
WHERE CY.COUNTRY_CODE='AUS' AND T.PLAYER_TYPE IN ('NEW', 'EXE')

Output:

FIRST_NAME LAST_NAME EMAIL_ID COUNTRY_ID
MARK CLARKSON dfgh@gmail.com 04
CATH SPEARS tygh@yahoo.com 04
FESS LOPEZ fgvhb@yandex.com 04
FEXS LOPEZ byvg@google.com 04
EOVA SMITH ghjkjh@sdf.com 04

Check the demo here.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading