【发布时间】:2023-04-07 17:54:01
【问题描述】:
我想针对 CASE 中的条件编写一个 select 语句。例如,如果(今天是工作日)则 x 否则 y
我在流分析查询中写了以下语句
SELECT
CASE
WHEN DATEPART(WEEKDAY, EventTime) in (1,7) THEN SELECT count(*) as Eventcount
INTO output
FROM Input
Group By tumblingwindow(minute,5)
Having Count(*) < 10
ELSE SELECT count(*) as Eventcount
INTO output
FROM Input
Group By tumblingwindow(minute,5)
Having Count(*) > 10
END as DayStatus
INTO Output1
FROM Input
我也尝试过以下查询,但仍然无法正常工作 选择( 案子 WHEN DATEPART(WEEKDAY, EventTime) in (1,7) THEN ( 选择计数()作为事件计数 INTO电子邮件AD输出事件棱镜 来自 IE_Eprism 按翻滚窗口分组(分钟,5) 计数() > 10 ) 其他“工作日” END ) 作为 DayStatus
FROM IE_Date
我收到上述声明的错误。 我怎样才能做到这一点? 提前谢谢你。
【问题讨论】:
-
如果只有两个条件,那么您可以在同一个 ASA 作业中有 2 个独立的查询。这行得通吗?
-
感谢@SidRamadoss,我现在正在尝试相同的方法。但这种方法的缺点是我们必须创建 2 个不同的输出(使用更多资源)。即使在我的情况下使用这种方法,它仍然没有给我想要的输出。它没有给出任何错误,但效果不佳。对于工作日我尝试 SELECT count(*) as Eventcount INTO Output FROM Input where DATEPART(WEEKDAY, EventTime) in (1,7) Group By tumblingwindow(minute,5) 给我 0 这是不正确的
-
您可以在两个查询中使用相同的输出资源。我建议您尝试使用 Visual Studio Code 使用来自云的输入流在您的设备上本地测试您的查询 -docs.microsoft.com/en-us/azure/stream-analytics/… 这将允许您更有效地调试查询。您将确切知道您的查询会产生什么结果。
-
谢谢@SidRamadoss,我会尝试调试