как написать процедуру для следующего в sql - PullRequest
0 голосов
/ 10 мая 2011

у меня есть таблица со столбцами, как это ..

column1     column2      column3    column4  column5

я хочу, чтобы данные заполнялись, как показано ниже, во втором столбце ..

где colum1,3,4,5...user выдаст значения ...

в столбце 2, его значения должны быть автоматически упорядочены, как показано ниже ...

column1     column2      column3    column4  column5
  1            1           one       one       one
  1            2          two       two       two
  1            3          three     three     three
  2            1          one       one       one
  2            2           two       two       two 
  2            3           three     three     three
  3            1           one       one       one
  3            2           two       two       two
  3            3           three     three     three

Люди, любезно Дайте свои предложения ... Thankxxx !!!суа!

Ответы [ 2 ]

1 голос
/ 10 мая 2011

В зависимости от вашей платформы может работать следующее:

UPDATE
  <your-table>
SET
  column2 = ROW_NUMBER() OVER (PARTITION BY column1)

РЕДАКТИРОВАТЬ

Как говорит Мартин в своем комментарии ...

WITH
  windowed_table
AS
(
  SELECT
    column2,
    ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column1) AS row_number
  FROM
    my_table
)
UPDATE
  windowed_table
SET
  column2 = row_number
1 голос
/ 10 мая 2011

Кажется, вы хотите дать каждой строке отдельное значение для одинаковых значений в column1. Это можно сделать с помощью оконной функции:

SELECT column1, 
       row_number() over (partition by column1) as column
FROM some_table

Я не понимаю, что вы хотите иметь в колонках 3, 4 и 5

...