Как получить ранг для прикрепленного набора данных в SQL, используя столбец даты для показанного списка клиентов - PullRequest
0 голосов
/ 19 февраля 2020

Друзья, я хочу сделать функцию ранга для нижеследующего набора записей, учитывая максимальное значение Last_transactiondate и присвоение ему ранга 1 сейчас, как только я получу, что я поставлю № 1 на ранги, у клиента есть Родитель и оставшийся ранг как Чайлдс.

Но из-за разного customerno и разных значений в других столбцах я не могу сделать эффективное ранжирование. Пожалуйста, помогите мне в этой части

Я хочу ранжировать клиентов на основе LastTransactionDate. рассмотрим столбец LastTransactionDate, значение «14 -06-2019 14:48:24» имеет максимальную запись или максимальную дату. Следовательно, для соответствующего CustomerNo должен быть выбран «Parent», а остальные должны быть помечены как дочерние. Если только если бы я мог присвоить CustomerNo 0003178419452479 ранг 1, а затем последующие ранги в порядке убывания, что я не могу сделать. Я не могу найти, что Столбец не выводит столбец, который существует с одинаковым значением для всех клиентов, чтобы поставить ранг на основе столбца Дата.

Код, который я написал, и выходные данные показаны здесь введите описание изображения здесь enter image description here

Кроме того, показанное здесь изображение является требуемым выходным сигналом из вышеуказанного набора данных изображения

enter image description here

код

> SELECT CustomerNO,CustomerID,CustomerIDType,CustomerNationalityCode,CustomerDateOfBirth,LastTransactionDate,Class_Profile,
,Dense_Rank() over ( PARTITION BY  n.CustomerNO ORDER BY LastTransactionDate DESC ) AS ranks, 
case when ranks=1 then 'P' else 'C' end as Class_Profile
FROM CustomerTabledetails
GROUP BY  CustomerNo,CustomerID,CustomerIDType,
CustomerNationalityCode,CustomerDateOfBirth,LastTransactionDate,Class_Profile
order by lasttransactiondate desc
...