1

私はこのような2つのテーブルを持っています:

    ---------        - -----------
    - X - Y -        - X - VALUE -
    ---------        - -----------
    -x1 - y1-        - x1- value1-     
    -x2 - y2-        - x1- value2-     
    -x3 - y3-        - x2- value3-     
    ---------        - x3- value4-
                     - x3- value5-
                     - x3- value6-
                     -------------

私はこのように彼らに参加したい:

    -----------------
    - X - Y - VALUE -
    -----------------
    -x1 - y1- value1-
    -   -   - value2-
    -x2 - y2- value3-
    -x3 - y3- value4-
    -   -   - value5-
    -   -   - value6-
    -----------------

X値を複製したくありません。

誰かがこのクエリを表示したり、誰かの例を参照したりできますか?

ありがとう!

4

1 に答える 1

2

最初の発生後にX、Y値を削除しようとしているようです。これは、row_number()関数を使用して、ほとんどのデータベースで実行できます。最初のテーブルをXY、2番目のテーブルをXと呼んでいます

select (case when seqnum = 1 then x end) as x,
       (case when seqnum = 1 then y end) as y,
       value
from (select xy.*, x.value,
             row_number() over (partition by xy.x order by xy.value) as seqnum
      from X join
           XY
           on x.x = xy.x
order by x, y
于 2012-09-14T17:21:44.147 に答える