如何在Power BI DAX中使用ORDER BY实现多列排序拼接
解决方案
CONCATENATEX函数本身支持指定排序规则,不需要在EVALUATE中使用ORDER BY(这类查询语句不适用于计算列/度量值的DAX场景)。你只需给CONCATENATEX添加排序参数,就能确保同一id下的likes按固定顺序拼接。
修改后的DAX公式如下:
= VAR ThisID = 'Table'[id] RETURN CONCATENATEX( FILTER( 'Table', 'Table'[id] = ThisID ), 'Table'[likes], "/", -- 排序规则:先按id(可选,因已过滤同一id),再按name升序排列 'Table'[id], ASC, 'Table'[name], ASC )
关键说明:
- CONCATENATEX的第4及以后的参数用于定义排序逻辑:每一组参数对应一个排序列和排序方向(
ASC升序/DESC降序) - 由于已经通过
FILTER限定了同一id,'Table'[id], ASC可以省略,仅保留'Table'[name], ASC也能实现同一id下按name排序的需求 - 修改后,同一id下的likes会严格按照name的顺序拼接,不会再出现随机顺序的问题
内容的提问来源于stack exchange,提问作者Rhea
相关产品推荐
相关产品推荐

