Sql 引用在“选择”中创建的自定义列
我想引用上面创建的列简写名称,以大大简化Sql 引用在“选择”中创建的自定义列,sql,presto,Sql,Presto,我想引用上面创建的列简写名称,以大大简化DATE\u DIFF行的可读性,但我不确定这是否允许 下面的代码可能吗?请注意,DATE\u DIFF的输入是在前面的两行中启动的 SELECT DISTINCT Stuff , DATE_FORMAT(FROM_UNIXTIME(date1), '%Y-%d-%m') as Date_Start , DATE_FORMAT(FROM_UNIXTIME(date2), '%Y-%d-%m') as Date_End ,
DATE\u DIFF
行的可读性,但我不确定这是否允许
下面的代码可能吗?请注意,
DATE\u DIFF
的输入是在前面的两行中启动的
SELECT DISTINCT
Stuff ,
DATE_FORMAT(FROM_UNIXTIME(date1), '%Y-%d-%m') as Date_Start ,
DATE_FORMAT(FROM_UNIXTIME(date2), '%Y-%d-%m') as Date_End ,
DATE_DIFF( 'day' , Date_Start , Date_End) + 1 as Date_Delta , `<-- HERE
More_Stuff
FROM T1
LEFT JOIN T2
ON Stuff = More_Stuff
LEFT JOIN T3
ON More_Stuff = Other_Stuff
选择DISTINCT
东西
日期格式(从UNIXTIME(date1),“%Y-%d-%m”)作为日期开始,
日期格式(从UNIXTIME(date2),“%Y-%d-%m”)作为日期结束,
DATE_DIFF('day',DATE_Start,DATE_End)+1作为DATE_Delta,`您可能会看到:
SELECT
Stuff
, Date_Start
, Date_End
, DATE_DIFF( 'day' , Date_Start , Date_End) + 1 as Date_Delta
, More_Stuff
FROM
(
SELECT DISTINCT
Stuff ,
DATE_FORMAT(FROM_UNIXTIME(date1), '%Y-%d-%m') as Date_Start ,
DATE_FORMAT(FROM_UNIXTIME(date2), '%Y-%d-%m') as Date_End ,
DATE_DIFF( 'day' , Date_Start , Date_End) + 1 as Date_Delta ,
More_Stuff
FROM T1
LEFT JOIN T2
ON Stuff = More_Stuff
LEFT JOIN T3
ON More_Stuff = Other_Stuff
) as Q
或:
要在SELECT
部分中使用字段,它必须存在于FROM
部分中。这是令人失望的。不过,感谢你证实了我的恐惧!
SELECT DISTINCT
Stuff ,
DATE_FORMAT(FROM_UNIXTIME(date1), '%Y-%d-%m') as Date_Start ,
DATE_FORMAT(FROM_UNIXTIME(date2), '%Y-%d-%m') as Date_End ,
DATE_DIFF( 'day' , DATE_FORMAT(FROM_UNIXTIME(date1), '%Y-%d-%m') , DATE_FORMAT(FROM_UNIXTIME(date2), '%Y-%d-%m')) + 1 as Date_Delta ,
More_Stuff
FROM T1
LEFT JOIN T2
ON Stuff = More_Stuff
LEFT JOIN T3
ON More_Stuff = Other_Stuff