1

我有两个这样的表:

    ---------        - -----------
    - 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 和第二个表 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 回答