【发布时间】:2023-01-07 00:49:16
【问题描述】:
我得到了一个这样的 PowerQuery 表:
| ID | A | B | C | COUNT | Timestamp |
|---|---|---|---|---|---|
| 1 | a1 | c1 | 0 | 2017-05-10 09:55:28 | |
| a3 | b | c2 | 2017-05-10 10:12:54 | ||
| 2 | a2 | c3 | 2 | 2017-05-10 10:19:47 | |
| a2 | b | c4 | 2017-05-10 10:20:24 | ||
| a2 | b | c5 | 2017-05-10 10:21:50 | ||
| 3 | a3 | c6 | 1 | 2017-05-10 10:31:02 | |
| a3 | c | c7 | 2017-05-10 10:31:02 |
在这里,列 COUNT 检查列值 ID 是否非空,如果是,它计算具有相同列值 A 的行这样列值 B 等于“b”。
现在,我想添加一个列 AVG_TIME_DIFF,它再次检查列值 ID 是否为非空,如果是:
- 检查
COUNT是否等于0,在这种情况下返回“0” - else 获取具有相同列值的所有行的时间戳
A这样列值B等于“b”以及行本身,按时间顺序对它们进行排序(即COUNT+1 多行)并返回以秒为单位的平均时差 - 否则结果为空
在上面的示例表中,结果应该是
ID | A | B | C | COUNT | Timestamp | AVG_TIME_DIFF
1 | a1 | | c1 | 0 | 2017-05-10 09:55:28 | 0
| a3 | b | c2 | | 2017-05-10 10:12:54 |
2 | a2 | | c3 | 2 | 2017-05-10 10:19:47 | 62
| a2 | b | c4 | | 2017-05-10 10:20:24 |
| a2 | b | c5 | | 2017-05-10 10:21:50 |
3 | a3 | | c6 | 1 | 2017-05-10 10:31:02 | 1088
| a3 | c | c7 | | 2017-05-10 10:31:02 |
可以根据需要向上或向下舍入秒的小数部分。
【问题讨论】:
标签: powerquery