リレーショナルデータベースの勉強用にかわいいデータベース作っています。
http://d.hatena.ne.jp/nowokay/20120817#1345197962
で、とりあえずorder byを実装してみました。こんな感じで。
System.out.println(Query //安い順に並べ替え .from("shohin") .orderBy("price"));
そしたら、金額順に並べ替えられます。
|shohin.shohin_id|shohin.shohin_name|shohin.kubun_id|shohin.price| |2|みかん|1|130| |6|しいたけ|4|180| |3|キャベツ|2|200| |4|さんま|3|220| |5|わかめ|null|250| |1|りんご|1|300| |7|ドリアン|1|null|
あと、集計のgroup byもできるようにしました。集計関数はカウントと平均だけだけど。
System.out.println(Query //集計 .from(Query .from("shohin") .groupBy("kubun_id", new Count("shohin_name"), new Average("price"))) .leftJoin("kubun", "kubun_id") .select("kubun_id", "kubun_name", "count", "average"));
なんか、ちゃんと集計できました!
|kubun_id|kubun_name|count|average| |1|くだもの|3|215.0| |2|野菜|1|200.0| |3|魚|1|220.0| |4|null|1|180.0|
集計は、一度集計フィールドで並べ替えてからまとめるような実装にしています。
これで、select文の各句が一応実装できたことになりますね。やった!
ソースはこちら。
https://gist.github.com/3380142/422c82d3bc963201b2ce78bbba593d9c452c4563