このディレクトリの索引
http://toro.2ch.net/test/read.cgi/db/1316769778/911
#  【質問テンプレ】  
#  ・SQLite3 
#  ・テーブル 
#  id,unixtime 
#  100001,1341404056 
#  100001,1341997094 
#  100001,1341987930 
#  100002,1341997860 
#  100002,1341989037 
#   
#  ・欲しい結果  
#  100001,1341997094 
#  100002,1341997860 
#   
#  ・説明  
#  上記テーブルでid毎にunixtimeが一番大きいデータを1つだけ取り出すには 
#  どのようなクエリでできるでしょうか。1回では無理でしょうか。 
# 
#  id,unixtime,value
#  "1" "1341404056" "内容1"
#  "1" "1341997094" "内容2"
#  "1" "1341987930" "内容3"
#  "2" "1341997860" "内容1"
#  "2" "1341989037" "内容2"
#  

'上記テーブルでid毎にunixtimeが一番大きいデータを1つだけ取り出す'(_id,_unixtime,_value) :-
        setof(_id,[_id,_unixtime,_value] ^ (
                    テーブル(_id,_unixtime,_value)),L1),
        member(_id,L1),
        findmax([_unixtime,_id,_value],(
                    テーブル(_id,_unixtime,_value)),[_unixtime,_id,_value]).