简体   繁体   中英

Select only duplicates from inner joined table

So I am very new to sql and need some help. I have an inner joined code of 3 tables:

SELECT *
FROM Activity 
Inner UserActivity on UserActivity.activity_id = Activity.activity_id 
Inner Join User on UserActivity.user_id = User.user_id 
;

From this code it creates a mega table, which is great. But now I want to select only the duplicate entries for 6 columns, activity_name, activity_time, user_id, email, first_name, and last name. I would like to group these by activity_time.

These specific columns look like:

activity_name  activity_time   user_id   email           first_name   last_name
Reading        00:00:15        10001     btv@gmail.com   Mike         Porter
Share          00:01:10        10765     ud@gmail.com    Jamie        Hollands
Like           23:15:00        15761     rsv@gmail.com   Ragav        Taylor
Tweet          07:59:01        17001     trv@gmail.com   Julie        Smith

How can I do this?

Thank you!

You can use a COUNT, GROUP, HAVING combination to filter duplicate rows.

SELECT  activity_name, activity_time, user_id, email, first_name, last name, COUNT(*)
FROM Activity 
INNER JOIN UserActivity on UserActivity.activity_id = Activity.activity_id 
INNER JOIN User on UserActivity.user_id = User.user_id 
GROUP BY activity_name, activity_time, user_id, email, first_name, last name
HAVING COUNT(*)>1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM