Имитация номера строки с помощью таблицы numbers

#sql

#sql

Вопрос:

Как бы я смоделировал номер строки для таблицы с использованием таблицы numbers БЕЗ использования функции ROW_NUMBER ().

пример таблицы: создайте учетные записи таблицы (переменная account_num(25), первичный ключ (account_num))

Таблица numbers содержит 1 миллион строк.

Комментарии:

1. Чем row_number() это вам не подходит? Недоступно?

Ответ №1:

В случае, если вы имеете в виду, когда он недоступен (он же MySQL), попробуйте что-то вроде этого:

 select @rownum := @rownum   1 rownum,
       t.*
from (select * from table t order by col) t,
     (select @rownum := 0) r
  

Это даст то же самое, что:

 select row_number() over (order by col)
from table
order by col
  

Комментарии:

1. Возможно ли это с использованием таблицы numbers?

Ответ №2:

Таблица Numbers здесь вам не поможет, потому что у вас нет средств связать значение в вашей таблице с числом в таблице Numbers. Однако, если вы спрашиваете, возможно ли создать последовательность без использования ROW_NUMBER() или переменной, вы можете сделать это следующим образом:

 Select A1.Account_Num, Count( A2.Account_Num )   1 As Num
From Accounts As A1
    Left Join Accounts As A2
        On A2.Account_Num < A1.Account_Num
Group By A1.Account_Num