Sql 在Azure Stream Analytics查询中重用子查询的结果

Sql 在Azure Stream Analytics查询中重用子查询的结果,sql,azure,azure-stream-analytics,Sql,Azure,Azure Stream Analytics,我正在使用Azure Stream Analytics,在查询部分我面临一些问题。这是我的密码 WITH subquery as ( SELECT messageId, deviceId, temperature, humidity, EventProcessedUtcTime, DemoML(temperature, humidity) as result1 from DemoInput ) SELECT m

我正在使用Azure Stream Analytics,在查询部分我面临一些问题。这是我的密码

WITH subquery as (
    SELECT 
    messageId,
    deviceId,
    temperature, 
    humidity,
    EventProcessedUtcTime,
    DemoML(temperature, humidity) as result1
    from DemoInput
    )

SELECT
    messageId as messageId,
    deviceId as deviceId,
    temperature as temperature,
    humidity as humidity,
    EventProcessedUtcTime as EventProcessedUtcTime,
    result1.[Scored Labels] as result,
    result1.[Scored Probabilities] as resultProbability
INTO
    [DemoOutput]
FROM
    [subquery]


SELECT
    result1
INTO
    [c2d]
FROM
    [subquery] 
DemoML是一个返回结果的函数。我想把结果1放到两个不同的输出中。但我只把结果1放到了一个输出中。我怎样才能做到这一点?我对SQL一无所知。

您可以使用INSERT。。。输出进入选择以插入两次:

WITH subquery as (
    SELECT 
    messageId,
    deviceId,
    temperature, 
    humidity,
    EventProcessedUtcTime,
    DemoML(temperature, humidity) as result1
    from DemoInput
    )
INSERT INTO target_1(col1,...)
OUTPUT inserted.col1, ...
INTO target_2(col1, ..)
SELECT
    messageId as messageId,
    deviceId as deviceId,
    temperature as temperature,
    humidity as humidity,
    EventProcessedUtcTime as EventProcessedUtcTime,
    result1.[Scored Labels] as result,
    result1.[Scored Probabilities] as resultProbability
FROM  [subquery];
简化:

CREATE TABLE t1(i INT);
CREATE TABLE t2(i INT);
CREATE TABLE src(i INT);
INSERT INTO src(i) VALUES(10),(20);

INSERT INTO t1(i)                 -- target one
OUTPUT inserted.i
INTO t2(i)                        -- target two
SELECT i
FROM src;

在这种情况下,我是否将相同的数据放入两个不同的目标中?@SamTew是的,只需检查demo链接,但如果需要,您可以操作列列表。如果我想将两组不同的数据放入两个表中,该怎么办?@SamTew然后您可以使用INSERT over DML语法。您原来的问题已解决。@SamTew我在这里看到的唯一区别是Azure ML调用。您是否独立测试它以确保它返回一些值?