嵌套子查询

【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境

【TDengine 版本】

【操作系统以及版本】

【部署方式】容器/非容器部署

【集群节点数】

【集群副本数】

【描述业务影响】

【问题复现路径/shan】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】

【资源配置】

【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)

tdengine是否支持嵌套子查询?下面SQL语句报错

<!-- 查询特定标签的排名 -->
<select id="getTagRank" resultType="java.util.Map">
    SELECT
        tag_content,
        tag_count,
        ROW_NUMBER() OVER (ORDER BY tag_count DESC) rank
    FROM (
        SELECT
            tag_content,
            COUNT(*) tag_count
        FROM tag_info_stable
        WHERE ts &gt;= #{startTime}
        AND ts &lt;= #{endTime}
        GROUP BY tag_content
         ) t
    WHERE tag_content = #{tag}
</select>

Error querying database. Cause: java.sql.SQLException: TDengine ERROR (0x2600): sql: SELECT

嵌套查询是支持的,你这个应该是不支持ROW_NUMBER()?

1 个赞

taos shell 里面执行SQL语句,看下完整报错。

1 个赞
<select id="countTagStats" resultType="java.lang.Long">
    SELECT COUNT(*)
    FROM (
    SELECT tag_content
    FROM tag_info_stable
    <where>
        <if test="req.startTime != null">
            AND ts &gt;= #{req.startTime}
        </if>
        <if test="req.endTime != null">
            AND ts &lt;= #{req.endTime}
        </if>
        <if test="req.tagKeyword != null and req.tagKeyword != ''">
            AND tag_content LIKE CONCAT('%', #{req.tagKeyword}, '%')
        </if>
    </where>
    GROUP BY tag_content
    ) t
</select>

是否支持concat拼接字符串? 想做模糊查询

目前来看的话直接在shell打sql可以实现,但是如果使用mybatis框架的话会报错,应该是不支持CONCAT的,那么应该怎么做呢?

看控制台的话是没有将CONCAT解析出来的

看了下支持CONCAT,也支持LIKE,但是如果使用CONCAT做模糊查询的话好像就不太行了