0

これを機能させるために多くのSQLを試しましたが、うまく機能しないようです。

私がしたいこと:

テーブルに 2 つの列があり、列 1 には個別の値が含まれており、そのうちのいくつかは列 2 に同じ値があります。列 3 には、これらをカウントする増分番号が必要です。

説明するのは難しいです。

1. Column1 | Column2 | Column3
2.  a_______1__________1
3.  b_______1__________2
4.  c_______1__________3
5.  d_______1__________4
6.  e_______2__________1
7.  f_______2__________2
8.  g_______2__________3
9.  h_______3__________1
10. i_______3__________2
11. j_______4__________1
12. k_______4__________2
13. l_______4__________3

したい: 列 1 の各値について、列 2 が別の値になるまで列 3 でカウントします。

誰か助けてくれませんか?:) ありがとう!

4

2 に答える 2

1

row_number()同じ を使用して、各行に増加する値を割り当てるために使用できますcolumn2

select  *
,       row_number() over (partition by column2 order by column1) as Column3
from    YourTable
于 2013-09-27T13:37:00.840 に答える
0

テーブル名: @Data

SELECT t1.col1, t1.col2, COUNT(t2.col2) AS sum
FROM @Data t1
INNER JOIN @Data t2 ON t1.col1 >= t2.col1 AND t1.col2 = t2.col2
GROUP BY t1.col1, t1.col2
ORDER BY t1.col1

これは sql-server 構文ですが、ロジックは oracle でも同じである必要があります。

于 2013-09-27T14:55:55.853 に答える