このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1252492296/609
#  postgres8.4を使ってます。 
#  レコード数が3件以上あるものを取得したいのですが 
#  どう書けばよいでしょうか。 
#   
#  やりたいことのイメージはこんな感じです。 
#  select recordCD from Table where recordCD in (select recordCD from Table where count(recordCD) > 3); 
#   
% これだとrecodCDが件数分出力されてしまうので、一件のみの出力に変更した

recordCDの位置を得る(_引数の数,_位置番号) :-
        'テーブル構造'('Table',_引数の数,_位置番号,recordCD).

レコード数が3件以上あるものを取得する(_recordCD) :-
        recordCDの位置を得る(_引数の数,_位置番号),
        functor(Q,'Table',_引数の数),
        arg(_位置番号,Q,_recordCD),
        findsetof(_recordCD,call(Q),L1),
        member(_recordCD,L1),
        count(Q,Count),
        Count >= 3.