SQL 到 powerBI 表达式?

Mog*_*gli 3 sql dax powerbi

如何在 PowerBI 中编写此表达式

select distinct([date]),Temperature from Device47A8F where Temperature>25
Run Code Online (Sandbox Code Playgroud)

全新的 PowerBI。是否有任何工具可以将查询从 sql 更改为 PowerBI 表达式?

我尝试了很多类型的不同类型的表达式,但出现错误,大部分时间我都得到这个:

The expression refers to multiple columns. Multiple columns cannot be converted to a scalar value.
Run Code Online (Sandbox Code Playgroud)

需要帮助,谢谢。

ale*_*eta 5

在我发布我的答案后,想知道您的预期结果是否仅按温度获得一个日期,换句话说,您的结果集中没有重复的日期。

旁注: select distinct([date]),Temperature from Device47A8F where Temperature>25由于DISTINCT关键字评估SELECT语句中指定的不同列值,因此返回重复日期,即使您用括号将其括起来,它也不会返回特定列中的不同值。

现在是什么让我们来到这里。我在您的错误中看到的是,您试图table-valued在仅接受scalar-valued(仅计算一个值)的度量中使用(生成具有多列的表)表达式。

假设你有一张这样的表:

在此处输入图片说明

运行您的 SQL 查询,您将在黄色行中突出显示:

在此处输入图片说明

你可以看到01/09/2016日期是重复的。如果要创建一个measure,则必须定义要显示的温度计算。即,平均值、最大值或最小值等。

在下面的表达式中正在计算每个日期大于 25 的最高温度:

MaxTempGreaterThan25 =
CALCULATE ( MAX ( Device47A8F[Temperature] ), Device47A8F[Temperature] > 25 )
Run Code Online (Sandbox Code Playgroud)

在这种情况下,度量MaxTempGreaterThan25是按日期计算的。

在此处输入图片说明

如果您不想生成度量而是生成表格。在 Power BI 工具栏中选择Modeling选项卡并单击New Table图标。

在此处输入图片说明

使用这个表达式:

MyTemperatureTable =
FILTER ( Device47A8F, Device47A8F[Temperature] > 25 )
Run Code Online (Sandbox Code Playgroud)

它应该生成一个新表,名称MyTemperatureTable如下:

在此处输入图片说明

我建议您学习一些有关 DAX 的基础知识,它与SQL/完全不同,T-SQL并且根据您的模型和数据,有些事情您无法做到。

如果这有帮助,请告诉我。