Поскольку SQL не позволяет мне считать функции Distinct over Window, мне нужно использовать плотный ранг, чтобы достичь того, что я пытаюсь сделать.
Мое утверждение таково:
,DENSE_RANK() over (partition by CustomerEmail order by Date_Created asc)
+DENSE_RANK() over (partition by CustomerEmail order by Date_Created desc)
-1 as AmountOrdersOverRangeByCustomer
Это показывает, сколько времени клиент (используя электронную почту для идентификации) размещает заказ. Поэтому, если он разместит 5 заказов в течение определенного периода времени, он получит 5,5,5,5 и 5.
Проблема в том, что он размещает два заказа в один и тот же день (Date_Created). Тогда вместо того, чтобы считать его как 2,2, Dense_Rank считает его как 1,1 ... что я думаю, это то, как он должен действовать, а не как я этого хочу. Кто-нибудь знает исправление? Исправит ли это использование Row_Number вместо Dense_Rank?