Генерация номера строки для повторных клиентов - SQL

>>> s = pd.Series([1,2,3,4,np.NaN,5,np.NaN])
>>> s[~s.isnull()]
0    1
1    2
2    3
3    4
5    5

обновление или даже лучший подход, поскольку @DSM предлагается в комментариях, используя pandas.Series.dropna() :

>>> s.dropna()
0    1
1    2
2    3
3    4
5    5
1
задан Doug Coats 16 January 2019 в 22:17
поделиться

1 ответ

измените row_number() на dense_rank(), чтобы получить желаемые результаты:

select distinct
    _row_ord = 100,
    _client_id =  c.client_id,
    _segment = 'fake',
    --_row = row_number() over(order by c.client_id)
    _value = 
        concat
                (
                'HL*',
                dense_rank() over(order by c.client_id) + 1 ,'*',
                'testfield','~' 
                )

Результаты:

_row_ord    _client_id  _segment    _value
100         1991        fake        HL*2*testfield~
100         1992        fake        HL*3*testfield~

Смотрите живую демонстрацию на rextester.

0
ответ дан Zohar Peled 16 January 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: