Tsql 流分析:内部联接两个子查询
我在流分析中使用了两个子查询,以便可以运行两个AzureML函数Tsql 流分析:内部联接两个子查询,tsql,join,azure-stream-analytics,Tsql,Join,Azure Stream Analytics,我在流分析中使用了两个子查询,以便可以运行两个AzureML函数 WITH subquery as ( SELECT id as id, username as username, try_cast(startTime as datetime) as startTime, try_cast(endTime as datetime) as endTime, AC as AC, FM as FM, UC as U
WITH subquery as (
SELECT
id as id,
username as username,
try_cast(startTime as datetime) as startTime,
try_cast(endTime as datetime) as endTime,
AC as AC, FM as FM, UC as UC,
DL as DL, DS as DS, DP as DP,
LB as LB, ASTV as ASTV, MSTV as MSTV,
ALTV as ALTV, MLTV as MLTV, Width as Width,
Min as Min, Max as Max, Nmax as Nmax,
Nzeros as Nzeros, Mode as Mode, Mean as Mean,
Median as Median, Variance as Variance, Tendency as Tendency,
rms,fmed,fpeak,sample_entropy,
EventProcessedUtcTime as EventProcessedUtcTime,
Distress(AC,FM,UC,DL,DS,DP,1,LB,ASTV,MSTV,ALTV,MLTV,
Width,Min,Max,Nmax,Nzeros,Mode,Mean,Median,Variance,
Tendency,1,1,1,1,1,1,1,1,1,1,1,1) as resultFHR
FROM
iot
),
subquery2 as (
SELECT
id as id,
try_cast(startTime as datetime) as startTime,
try_cast(endTime as datetime) as endTime,
AC as AC, FM as FM, UC as UC,
DL as DL, DS as DS, DP as DP,
LB as LB, ASTV as ASTV, MSTV as MSTV,
ALTV as ALTV, MLTV as MLTV, Width as Width,
Min as Min, Max as Max, Nmax as Nmax,
Nzeros as Nzeros, Mode as Mode, Mean as Mean,
Median as Median, Variance as Variance, Tendency as Tendency,
rms,fmed,fpeak,sample_entropy,
EventProcessedUtcTime as EventProcessedUtcTime,
Labour("",1,1,1,"",rms,fmed,fpeak,sample_entropy,"","") as resultUC
FROM
iot
)
SELECT
id as id,
username as username,
startTime as startTime,
endTime as endTime,
AC as AC, FM as FM, UC as UC,
DL as DL, DS as DS, DP as DP,
LB as LB, ASTV as ASTV, MSTV as MSTV,
ALTV as ALTV, MLTV as MLTV, Width as Width,
Min as Min, Max as Max, Nmax as Nmax,
Nzeros as Nzeros, Mode as Mode, Mean as Mean,
Median as Median, Variance as Variance, Tendency as Tendency,
EventProcessedUtcTime as EventProcessedUtcTime,
resultFHR.[classes] as distress,
resultFHR.[probabilities] as distressProbability,
resultUC.[classes] as labour,
resultUC.[probabilities] as labourProbability
INTO
sql
FROM
subquery INNER JOIN subquery2 ON subquery.id = subquery2.id
AND DATEDIFF(second, subquery, subquery2) BETWEEN 0 AND 20
SELECT
*
INTO
c2d
FROM
subquery INNER JOIN subquery2 ON subquery.id = subquery2.id
AND DATEDIFF(second, subquery, subquery2) BETWEEN 0 AND 20
我尝试使用内部联接来联接两个子查询,但它适用于第二个查询,而不适用于第一个查询。当我在第一次查询中使用内部联接时,它将显示一个错误
无效的列名:“id”。具有此名称的列不存在
有什么解决方案吗?既然您连接了两个源
子查询
和子查询2
,那么您需要像在ON子句中那样用源名称限定列(subquery.id=subquery2.id
)
仅当您只有一个源时才允许使用非限定名称,例如在子查询
步骤中
更改列引用以完全限定它们,如下所示:
挑选
subquery.id作为id,
subquery.username作为用户名,
subquery.startTime作为startTime,
subquery.endTime作为endTime,
...
由于您连接了两个源子查询
和子查询2
,因此需要使用源名称限定列,就像在ON子句中那样(subquery.id=subquery2.id
)
仅当您只有一个源时才允许使用非限定名称,例如在子查询
步骤中
更改列引用以完全限定它们,如下所示:
挑选
subquery.id作为id,
subquery.username作为用户名,
subquery.startTime作为startTime,
subquery.endTime作为endTime,
...
为什么不';为什么不从sql中选择*进入c2d;难道你不能从sql中选择*进入c2d吗?