Hi, I have submitted a PR[1] for this new feature.
It implements AS function in almost all query, like raw data query, aggregation query, align by device query, last query etc.. Welcome to review if you are interested. [1] https://github.com/apache/incubator-iotdb/pull/1621 Xiangwei Wei <[email protected]> 于2020年8月14日周五 下午4:31写道: > Hi, > > >【select s1 as column1 from root.sg.d1, root.sg.d2 align by device】 also > throw exception. > > It can be supported actually, the result will be like: > > | Time | Device | column1 | > | .... | root.sg.d1 | value1 | > | .... | root.sg.d1 | value... | > | .... | root.sg.d2 | value1 | > | .... | root.sg.d2 | value... | > > But [select * as column1 from root.sg.d1 align by device], while * -> s1, > s2 will throw an exception. > > > There are some examples that should be supported with alias. > > Thanks for the examples. > > > Jialin Qiao <[email protected]> 于2020年8月14日周五 下午2:28写道: > >> Hi, >> >> > but it should be supported in raw data query too. >> >> +1 >> >> It seems that the "align by device query" has no advantages when using >> alias. E.g., 【select s1 as column1 from root.sg.d1, root.sg.d2 align by >> device】 also throw exception. >> >> Therefore, we should restrict that the from clause only has one prefix >> path. >> >> For our query sql, it can be seen as: 【select suffixPath1 as alias1, >> suffixPath2 as alias2, ... from prefixPath】 >> >> The raw paths are: >> prefixPath.suffixPath1 -> alias1 >> prefixPath.suffixPath2 -> alias2 >> ... >> >> Then we need to check whether the prefixPath.suffixPath matches one >> series. >> >> There are some examples that should be supported with alias: >> >> select d1.s1 as column1 from root.sg >> select * as column1 from root.sg.d1 >> select count(s1) as column1 from root.sg.d1 >> select count(s1) as column1 from root.sg.d1 group by (xxx) fill(xxx) >> >> Thanks, >> -- >> Jialin Qiao >> School of Software, Tsinghua University >> >> 乔嘉林 >> 清华大学 软件学院 >> >> > -----原始邮件----- >> > 发件人: "Xiangwei Wei" <[email protected]> >> > 发送时间: 2020-08-13 21:21:03 (星期四) >> > 收件人: [email protected] >> > 抄送: >> > 主题: Re: [New feature] Add the alias and show it as column name when >> querying >> > >> > Hi Xiangdong, >> > >> > > if only one time series can be matched that starts with "root.sg" and >> > ends with "s1", it is ok,otherwise throw an exception. >> > >> > You are right, thanks for the illustration. >> > >> > >> > > But for queries like "select s1 from root.sg.* align by device", the >> > cases you mentioned will never happen, which is more graceful. >> > >> > I agree with the point you mentioned. This new feature is more suitable >> for >> > align by device query, but it should be supported in raw data query too. >> > >> > Xiangdong Huang <[email protected]> 于2020年8月13日周四 下午5:29写道: >> > >> > > Hi, >> > > >> > > > So we have to request that *every alias input by users is matching >> one >> > > time >> > > series exactly.* >> > > >> > > for a query like `select s1 from root.sg.*`, if only one time >> series can >> > > be matched that starts with "root.sg" and ends with "s1", it is ok, >> > > otherwise throw an exception. >> > > It is fine... >> > > >> > > But for queries like "select s1 from root.sg.* align by device", the >> cases >> > > you mentioned will never happen, which is more graceful. >> > > >> > > So, maybe this feature is more suitable for such kind of queries. >> > > >> > > Best, >> > > ----------------------------------- >> > > Xiangdong Huang >> > > School of Software, Tsinghua University >> > > >> > > 黄向东 >> > > 清华大学 软件学院 >> > > >> > > >> > > Xiangwei Wei <[email protected]> 于2020年8月13日周四 下午2:46写道: >> > > >> > > > Hi, >> > > > >> > > > I'm prepared to add a new feature in IoTDB as follows: >> > > > >> > > > Currently, when doing a query like *`select s1 from root.sg.d1`*, >> the >> > > > result shows like: >> > > > >> > > > | Time | root.sg.d1.s1| >> > > > | ... | ... | >> > > > >> > > > The column name *includes all prefix paths which are complex* and >> seem >> > > > inflexible and inconvenient in some situations. >> > > > >> > > > Therefore, I think we can add a new feature by adding the alias of >> time >> > > > series, which is like a relational database. For example, *`select >> s1 as >> > > > d1_temperature form root.sg.d1`* >> > > > >> > > > The result will be like: >> > > > >> > > > | Time | d1_temperature | >> > > > | ... | .... | >> > > > >> > > > >> > > > However, the new feature may be *limited* in IoTDB as a time series >> > > > database. >> > > > Because it's not matching one time series for one suffix path >> exactly in >> > > > SELECT Clause. For example, `select s1 as temperature from root.sg`. >> If >> > > > two >> > > > devices d1 and d2 exist in root.sg, then they can't both be >> temperature. >> > > > We >> > > > have to throw an exception here. >> > > > >> > > > So we have to request that *every alias input by users is matching >> one >> > > time >> > > > series exactly.* >> > > > >> > > > >> > > > Any suggestions or questions are welcome! Thank you! >> > > > >> > > > >> > > > >> > > > -- >> > > > Best, >> > > > Xiangwei Wei >> > > > >> > > >> > >> > >> > -- >> > Best, >> > Xiangwei Wei >> > > > -- > Best, > Xiangwei Wei > -- Best, Xiangwei Wei
