このディレクトリの索引
http://toro.2ch.net/test/read.cgi/db/1343899481/959
#  質問させてください 
#   
#  アマゾンとかでよくある商品の評価ポイントを集計するクエリを作りたいです 
#  アマゾンと少し違うのは、商品そのものの評価ポイントではなく、 
#  商品を登録した出品者くくりでの、「その出品者が出品した全ての商品の評価ポイント」の平均値をとることです 
#   
#  まとめると、 
#  ・特定の出品者の出品した商品の評価ポイントの平均値をとる 
#  ・同時に、レビューの件数をとる 
#  ・判明してるキーはt_prof.keyのみです 
#   
#  テーブルは以下の通り。 
#   
#  レビューtable =t_review 
#  =============================== 
#  reviewId -- int(11) :プライマリキー、auto_increment 
#  workId --  int(11) :商品のID 
#  userId --  int(11) :出品者のID 
#  point --   tinyInt(1):評価ポイント(1〜5) 
#   
#  出品者プロフィールtable =t_prof 
#  =============================== 
#  userId -- int(11) :プライマリキー、auto_increment 
#  namae --  text :出品者の名前 
#  key --   int(3):キー。ユニーク 
#   
#  どんなクエリを書いたらいいんでしょうか 
#  すみません、よろしくお願いします 
# 

'アマゾンとかでよくある商品の評価ポイントを集計するクエリを作りたいです 
アマゾンと少し違うのは、商品そのものの評価ポイントではなく、 
商品を登録した出品者くくりでの、「その出品者が出品した全ての商品の評価ポイント」の平均値をとることです 
 
まとめると、 
・特定の出品者の出品した商品の評価ポイントの平均値をとる 
・同時に、レビューの件数をとる 
・判明してるキーはt_prof.keyのみです 
 
テーブルは以下の通り。 
 
レビューtable =t_review 
=============================== 
reviewId -- int(11) :プライマリキー、auto_increment 
workId --  int(11) :商品のID 
userId --  int(11) :出品者のID 
point --   tinyInt(1):評価ポイント(1〜5) 
 
出品者プロフィールtable =t_prof 
=============================== 
userId -- int(11) :プライマリキー、auto_increment 
namae --  text :出品者の名前 
key --   int(3):キー。ユニーク 
 
どんなクエリを書いたらいいんでしょうか 
すみません、よろしくお願いします'(_商品のID,_出品者のID,_出品者の名前,_レビューの件数,_評価点の平均) :-
        '商品を登録した出品者くくりでの、「その出品者が出品した全ての商品の評価ポイント」の平均値をとる'(_商品のID,_出品者のID,_出品者の名前,_レビューの件数,_評価点の平均).

'商品を登録した出品者くくりでの、「その出品者が出品した全ての商品の評価ポイント」の平均値をとる'(_商品のID,_出品者のID,_出品者の名前,_レビューの件数,_評価点の平均) :-
        商品から出品者を得る(_商品のID,_出品者のID),
        レビューの件数と評価点の平均を得る(_商品のID,_レビューの件数,_評価点の平均),
        出品者の名前を得る(_出品者のID,_出品者の名前).


商品から出品者を得る(_商品のID,_出品者のID) :-
        レビュー(_,_商品のID,_出品者のID,_).

レビューの件数と評価点の平均を得る(_出品者のID,_レビューの件数,_評価点の平均) :-
        findall(_評価点,(
                    レビュー(_,_商品のID,_出品者のID,_評価点)),
                _評価点ならび),
        レビューの件数と評価点の平均を得る(_評価点ならび,_評価点の平均),
        length(_評価点ならび,_レビューの件数),
        相加平均(_評価点ならび,_評価点の平均).

出品者の名前を得る(_出品者のID,_出品者の名前) :-
        出品者プロフィール(_,_出品者の名前,_出品者のID).