从 Power Bi 中的最小和最大日期获取值 - 分组依据

问题描述 投票:0回答:2

我正在处理已执行手术的数据库。

数据库的每一行包含患者的 ID、手术日期和进行的手术。

一名患者可以接受多次手术,并且每次手术可以不同。

我想要获取的是每个患者进行的手术次数,第一次手术和最后一次手术是什么。

这是原始数据库示例:

病人 日期 手术 id
A 01-01-22 眼睛 1
B 01-01-22 2
C 01-01-22 鼻子 3
A 01-05-22 4
C 01-06-22 眼睛 5
B 01-07-22 6
A 01-12-22 鼻子 7

我需要以下输出:

病人 手术次数 第一次手术 最后一次手术
A 3 眼睛 鼻子
B 2
C 2 鼻子 眼睛

我正在使用以下 Dax 表达式:

N_Surgery = GROUPBY(Surgery, Surgery[patient_id], 
                           "N_Surgery", COUNTX(CURRENTGROUP(), Surgery[id]))

但我不知道如何进行最后一次和第一次手术。

这就是我希望使用 R 代码示例来复制的内容:

Summarise <- DF%>%
                group_by(patient_id)%>%
                summarise(N_Surgery = n(),
                          First = surgery[which.min(date)],
                          Last = surgery[which.max(date)])
                              

提前致谢!

powerbi dax grouping powerquery powerbi-desktop
2个回答
3
投票

表:

代码:

Table 2 = 

ADDCOLUMNS(
    SUMMARIZE('Table', 'Table'[patient]),
    "Number of Surgeries", CALCULATE(COUNTROWS('Table')),
    "First Surgery", 
        VAR a = CALCULATE(MIN('Table'[date])) 
        RETURN CALCULATE(MIN('Table'[surgery]), 'Table'[date] = a),
    "Last Surgery", 
        VAR b = CALCULATE(MAX('Table'[date])) 
        RETURN CALCULATE(MIN('Table'[surgery]), 'Table'[date] = b)
)

2
投票

你也可以尝试这3招-

surgery_count = count('your_table_name'[patient])
surgery_first = 

var current_patient_min_date =
CALCULATE(
    MIN('your_table_name'[date]),
    ALLEXCEPT('your_table_name','your_table_name'[patient])
)

RETURN 
CALCULATE(
    MIN('your_table_name'[surgery]),
    FILTER(
        ALLEXCEPT('your_table_name','your_table_name'[patient]),
        'your_table_name'[date] = current_patient_min_date
    )
)
surgery_last = 

var current_patient_max_date =
CALCULATE(
    MAX('your_table_name'[date]),
    ALLEXCEPT('your_table_name','your_table_name'[patient])
)

RETURN 
CALCULATE(
    MIN('your_table_name'[surgery]),
    FILTER(
        ALLEXCEPT('your_table_name','your_table_name'[patient]),
        'your_table_name'[date] = current_patient_max_date
    )
)

输出-

© www.soinside.com 2019 - 2024. All rights reserved.