2011-01-12 9 views
1

これは、ユニークな視聴者とユニークなビデオですべてのビューを取得する必要がある、少し複雑なSQLクエリです。以前はSQLでした。ビューをユニークな視聴者とユニークなビデオで取得する

ので:

Views(user,video) 
-------------- 
joker | 1541 
foo | 1541 
foo | 1541 
bar | 1542 
bar | 1543 

ザ・フェッチする必要があります

joker | 1541 
foo | 1541 
bar | 1542 
bar | 1543 

事実:

  • それがためにOKだと同じ人物が現れることをOKですが、別の動画
  • を見に同じビデオが出演するが、異なる人によって見られる。
  • 同じ人が同じビデオを複数回表示するのは大丈夫です。

初心者には少し難しいかもしれませんが、私の場合は役に立たないかもしれません。何か助けていただければ幸いです。

ありがとうございます!

答えて

2
select user, video 
    from Views 
    group by user, video 
+0

おかげで、しかし、あなたは確かにこの意志はないグループの最後です2 "バー"。 – Ryan

+0

@David:はい。ビデオの列が異なり、両方の列でグループ化しているためです。 –

1
SELECT DISTINCT user,video FROM Views 

ここで私は、この作品を証明するために、Oracle上でやった例だ:

DROP TABLE views; 
CREATE TABLE views (USR VARCHAR2(100), video NUMBER); 

INSERT INTO views VALUES ('joker', 1541); 
INSERT INTO views VALUES ('foo', 1541); 
INSERT INTO views VALUES ('foo', 1541); 
INSERT INTO views VALUES ('bar', 1542); 
INSERT INTO views VALUES ('bar', 1543); 
COMMIT; 

SELECT DISTINCT usr,video FROM views 
ORDER BY usr,video; 

結果:

USR  VIDEO 
1 bar  1542 
2 bar  1543 
3 foo  1541 
4 joker 1541 
関連する問題