如何从列表中仅获取不同的值

How to get only distinct values from list

我有什么:一个带有字符串列的数据源,我们称它为“名称”。 还有很多,但与问题无关。

具体查询上下文中的“名称”列仅包含 2 个不同的值:

  1. ""
  2. “SomeName”

但是两者中的任何一个都有不同的次数。这两个只有

现在,我需要的是:在 summarize 语句的上下文中,我需要一个包含两个不同值的列 strcated 在一起,所以我最终只得到“SomeName ".

我所拥有的不符合这个要求,我无法让自己找到解决方案:

datatable(name:string)["","SomeName","SomeName"] // just to give a minimal reproducible example
| summarize Name = strcat_array(make_list(name), "")

这给了我

 | Name
> SomeNameSomeName

但我只需要

 | Name
> SomeName

我知道我需要以某种方式在某个地方做一些“不同”的事情,或者可能有一个完全不同的解决方案来获得相同的结果?

所以,我的问题是:我需要在显示的查询中更改什么才能满足我的要求?

哇哦,刚发问题,居然找到答案了:

datatable(name:string)["","SomeName","SomeName", ""]
| summarize Name = max(name)

我不知道为什么这适用于字符串列,但我在这里。

这导致了我想要的结果:

  | Name
>   SomeName

...我想这可能不如大卫的回答有效。所以我更喜欢他的。

take_any()

When the function is provided with a single column reference, it will attempt to return a non-null/non-empty value, if such value is present.

datatable(name:string)["","SomeName","SomeName", ""]
| summarize take_any(name)
name
SomeName

Fiddle