#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