2017-02-13 10 views
0

私は非常にSQLに新しいので、いくつかの助けが必要です。私は3つのテーブルの内部結合コードを持っています:内部結合テーブルの重複のみを選択してください

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

このコードから、それは素晴らしいですメガテーブルを作成します。しかし、今私は、6つの列、activity_name、activity_time、user_id、email、first_name、およびlast nameの重複した項目だけを選択したいと考えています。私はactivity_timeでこれらをグループ化したいと思います。

これらの特定の列には、次のようになります。

activity_name activity_time user_id email   first_name last_name 
Reading  00:00:15  10001  [email protected] Mike   Porter 
Share   00:01:10  10765  [email protected] Jamie  Hollands 
Like   23:15:00  15761  [email protected] Ragav  Taylor 
Tweet   07:59:01  17001  [email protected] Julie  Smith 

はどうすればこれを行うことができますか?

ありがとうございました!

+4

サンプルの入力と出力を表示してください。ここで必要なものはわかりません。 –

+0

サンプルデータと期待される出力を見せてください。 \t [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [**スタート**] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を改善し、より良い回答を得る方法を学ぶことができます。 –

+0

あなたは私たちに3つのもの、あなたが持っているもの、望むもの、そこに行くためにどのようなロジックが必要かを見せなければなりません。 –

答えて

3

重複する行をフィルタリングするために、COUNT、GROUP、HAVINGの組み合わせを使用できます。

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 
+0

あなたは 'group by'を必要とします –

+0

はいあなたは正しいです私はあなたを忘れてしまいます –

関連する問題