- ベストアンサー
ある単位で集計した最小値を項目に追加したい
あるSQLを実行した結果 ある集計行(X1)が出るとします。 集計行(X1) ------- 12 15 23 24 28 31 45 47 ------- ここで、集計行の左の数字でグルーピングして、その中のもっとも小さい数字を 集計行の横に出すとします。(行数は変わりません) 集計行(X1),項目2 ------- 12 ,12 15 ,12 23 ,23 24 ,23 28 ,23 31 ,31 45 ,45 47 ,45 ------- もとのSQLを 「select X1 from zz where 条件1」 とした場合、どのようにすればこの結果が得られるでしょう?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
-- こういうことじゃないのかな? select X1, min(X1) over (partition by substr(X1,1,1)) from zz where 条件
その他の回答 (2)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
回答No.2
もしかして、X1の数の十の位の数で、グルーピングすればいいのかな?? select a.X1,b.minX1 from (select X1,X1 - mod(X1,10) as GroupX1 from zz 条件1) a, (select min(X1) as minX1,X1 - mod(X1,10) as GroupX1 from zz 条件1 group by X1 - mod(X1,10)) b where a.GroupX1=b.GroupX1 ;
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
回答No.1
項目2をひねり出す手段が明示されていないので、回答できる方は居ないと思いますよ。
お礼
まさに求めたい通りの結果が出ました。 partition by ってたまに見る程度だったのですが、 こういう使い方をするのですね。 他の方々の解答でもできるかも知れませんが、 今回、この方法を採用するようにしました。 ありがとうございました。