[Senna-dev 815] Re: SennaQL 多重sortについて

Back to archive index

渡部 浩二 watan****@bhsk*****
2008年 3月 17日 (月) 17:23:55 JST


渡部です。

返答ありがとうございます。

現状はrev版ということですが、正式版としてのリリースは予定されているのでしょうか。


On Mon, 17 Mar 2008 16:52:48 +0900
morit****@razil***** wrote:

> 
> 森です。
> 
> >>> 渡部 浩二 さんは書きました:
> > 渡部です。
> > 
> > SennaQLで複数のフィールドに対してsortのかけ方が分かりません。
> > 
> > (sen-output (((<senna_test>.field_a : "test")::sort field_a 100 :asc)::sort field_b 100 :asc) '(.:key :field_a :field_b))
> > 
> > とした場合、最後のfield_bでソートされるのみで、field_aのソートが反映されません。
> 
> そうですね。この例ですと
> 
>  (<senna_test>.field_a : "test")
> 
> で返されるレコードセットを、field_aでソートし、
> それから field_bでソートしなおしていることになりますので、
> 最後のソート条件だけが有効になります。
> 
> > SennaQLでの多重ソートは可能なのでしょうか。
> 
> すみません。実はまだ作っていなかったのですが、
> rev769で比較関数をsortの引数に指定できるようにしてみました。
> 
> (sen-output
>  (((<senna_test>.field_a : "test") ::sort '(()) 100 :asc
>    (lambda (x y)
>      (if (= x.field_a y.field_a)
>          (- x.field_b y.field_b)
>          (- x.field_a y.field_a)))))
>  '(.:key :field_a :field_b))
> 
> 組み込みの比較関数が貧弱なのでまだ実用性は低いかも知れませんが。。
> 
> > 分かる方いらっしゃいましたら、宜しくお願いします。
> > 
> > _______________________________________________
> > Senna-dev mailing list
> > Senna****@lists*****
> > http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> > バグ報告方法:http://qwik.jp/senna/bug_report.html
> > 
> --
> morita
> 
> _______________________________________________
> Senna-dev mailing list
> Senna****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> バグ報告方法:http://qwik.jp/senna/bug_report.html




Senna-dev メーリングリストの案内
Back to archive index