首页 / 浏览问题 / 组件GIS / 问题详情
iObjects.Java对属性数据集进行查询的相关提问
252EXP 2024年04月30日
如题,现在想要对一个属性数据根据不同的区块号进行查询,这个数据除了区块号外,具有深度(1~15)和一个特定的属性A,

请问有没有什么快速的方法能够迅速返回查询结果里最大的深度,以及在从1到最大深度下每个深度中属性A出现次数最多的值

1个回答

您好,根据您的问题描述,建议可以通过 SQL 查询功能对属性数据集进行查询,具体可参考以下方案:

  1. 根据不同的区块号进行查询:where 区块号="";
  2. 查询最大的深度:select max(深度);
  3. 查询每个深度中属性A出现次数最多的值:select count(A) from table group by 深度。

希望可以帮到您。

2,168EXP 2024年04月30日
您好,感谢解答。但这个就是用到数据库那边的功能了,请问这个功能我们的iObjects.Java能做到吗?

您好,iObjects Java 是提供了数据集查询接口(DatasetVector.query),支持 SQL 查询,详细使用方式建议参考 iObjects Java 组件帮助文档哦。

您好,感谢解答,请问我应该如何把下面这段sql语句嵌入到我们的QueryParameter中?

其中变量只有"四次メッシュ" = 533944274

WITH RankedValues AS (
    SELECT
        "深度",
        "wnまるめ最頻値",
        ROW_NUMBER() OVER (PARTITION BY "深度" ORDER BY COUNT(*) DESC) AS Rnk
    FROM
        sdx."sws_step5処理後"
    WHERE
        "四次メッシュ" = 533944274
    GROUP BY
        "深度",
        "wnまるめ最頻値"
)
SELECT
    "深度",
    "wnまるめ最頻値"
FROM
    RankedValues
WHERE
    Rnk = 1;
可以直接使用上图的截图接口 public Recordset query(java.lang.String attributeFilter, CursorType cursorType),把字符串传入进去查询结果
感谢解答。
您好,我试了一下,我们的attributeFilter似乎只能限定where之后的条件过滤,像我上面发的形式直接作为字符串传进去返回的查询结果为0,请问应该如何正确的查询上面sql的结果?

确实,我在本地确认了SQL查询,需要构建 QueryParameter 查询参数

...