このディレクトリの索引

# 出典 :: SQL質疑応答スレ 11問目 #595 # 下記のようなデータがあるとき、投票回数が3以上に該当する投票者の # レコードを全て除いた結果が欲しいのですがどのようにしたらよいでしょうか? # # 投票者 ,投票回数, 誰に投票したか # ------------------------------- # A   , 1   , D # B   , 1   , E # B   , 2   , F # B   , 3   , G # C   , 2   , H # C   , 2   , I # # (3以上に該当する投票者Bのレコードを除く) # A   , 1   , D # C   , 2   , H # C   , 2   , I # # '投票回数が3以上に該当する投票者のレコードを全て除いた結果'(_投票者,_投票回数,_誰に投票したか) :- '投票回数が3以上に該当する投票者ならび'(_投票回数が3以上に該当する投票者ならび), '投票回数が3以上に該当する投票者のレコードを全て除いた結果'(_投票回数が3以上に該当する投票者ならび,_投票者,_投票回数,_誰に投票したか). '投票回数が3以上に該当する投票者ならび'(_投票回数が3以上に該当する投票者ならび) :- setof(_投票者,_投票者 ^ ( 投票回数が3以上(_投票者)),_投票回数が3以上に該当する投票者ならび). 投票回数が3以上(_投票者) :- データ(_投票者,_投票回数,_誰に投票したか), _投票回数 >= 3. '投票回数が3以上に該当する投票者のレコードを全て除いた結果'(_投票回数が3以上に該当する投票者ならび,_投票者,_投票回数,_誰に投票したか) :- データ(_投票者,_投票回数,_誰に投票したか), '投票回数が3以上に該当する投票者ではない'(_投票者). '投票回数が3以上に該当する投票者ではない'(_投票者) :- \+(member(_投票者,_投票回数が3以上に該当する投票者ならび)).