行号分区到 POWER BI DAX 查询

Aky*_*kyl 5 rownum dax powerbi

有人可以帮我将 sql 字符串转换为 Dax 吗?

row_number() p over(按日期、客户分区、按天输入订单)在此输入图像描述

行号是我想要的输出。

Ang*_*epa 3

假设您的数据如下表所示:

Sample
+------------+----------+---------+--------+
|    Date    | Customer | Product | Gender |
+------------+----------+---------+--------+
| 01/01/2018 |     1234 | P2      | F      |
| 01/01/2018 |     1234 | P2      | M      |
| 03/01/2018 |     1235 | P1      | F      |
| 03/01/2018 |     1235 | P2      | F      |
+------------+----------+---------+--------+
Run Code Online (Sandbox Code Playgroud)

我使用 RANKX 和 FILTER 函数创建了一个名为 Rank 的计算列。

计算的第一部分是在 FILTER 函数范围之外创建变量。第二部分使用 RANKX,它采用表达式值(在本例中为 Gender)来对值进行排序。

Rank = 
VAR _currentdate = 'Sample'[Date]
VAR _customer = 'Sample'[Customer]
var _product = 'Sample'[Product]

return
RANKX(FILTER('Sample',
[Date]=_currentdate &&
[Customer] = _customer &&
[Product] = _product),[Gender],,ASC)
Run Code Online (Sandbox Code Playgroud)

输出是

在此输入图像描述

我将输出与 SQL 等效项进行了对比。

select 
*, 
row_number() over(partition by Date,Customer,Product order by Gender) 
from (
select '2018-01-01' as Date,1234 as CUSTOMER,'P2' AS PRODUCT, 'M' Gender union
select '2018-01-01' as Date,1234,'P2','F' UNION
select '2018-01-03' as Date,1235,'P1','F' UNION
  select '2018-01-03' as Date,1235,'P2','F' 
)t1

Run Code Online (Sandbox Code Playgroud)

在此输入图像描述