このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1274791771/96
#  教えてください 
#  table aから(dept,place)でのくくりでcount の次のレスに示すようにtop3を抽出したいです 
#    
#  table a 
#  dept|place|ext|count 
#  aaaa|aaaaa|jar|10 
#  aaaa|aaaaa|com|4 
#  aaaa|aaaaa|scr|20 
#  aaaa|aaaaa|exe|80 
#  aaaa|aaaaa|bat|2 
#  aaaa|bbbbb|ace|10 
#  aaaa|bbbbb|arj|4 
#  aaaa|bbbbb|zip|20 
#  aaaa|bbbbb|rar|80 
#  aaaa|bbbbb|lzh|2 
#  bbbb|aaaaa|mdb|10 
#  bbbb|aaaaa|xls|4 
#  bbbb|aaaaa|ppt|20 
#  bbbb|aaaaa|doc|80 
#  bbbb|aaaaa|txt|2 
#  bbbb|bbbbb|gif|10 
#  bbbb|bbbbb|png|4 
#  bbbb|bbbbb|jpg|20 
#  bbbb|bbbbb|bmp|80 
#  bbbb|bbbbb|tif|2 
#  ↓ 
#  aaaa|aaaaa|exe|80 
#  aaaa|aaaaa|scr|20 
#  aaaa|aaaaa|jar|10 
#  aaaa|bbbbb|rar|80 
#  aaaa|bbbbb|zip|20 
#  aaaa|bbbbb|ace|10 
#  bbbb|aaaaa|doc|80 
#  bbbb|aaaaa|ppt|20 
#  bbbb|aaaaa|mdb|10 
#  bbbb|bbbbb|bmp|80 
#  bbbb|bbbbb|jpg|20 
#  bbbb|bbbbb|gif|10 
#   

'table aからdept,placeのくくりでcountのtop3を抽出' :-
    findsetof([_dept,_place],a(_dept,_place,_exit,_count)),
    findall(X,findrsort([_count],a(_dept,_place,_ext,_count),X),L),
    for(1,N,3),
    list_nth(N,L,X),
    write_formatted('%t|%t|%t|%t\n',X),
    N = 3,
    fail.
'table aからdept,placeのくくりでcountのtop3を抽出'.

% findrsort/3,findsetof/2 は http://nojiriko.asia/prolog/findsort.html 参照