You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cognos中创建重复循环表以计算地点间距离?

生成地点笛卡尔积用于距离计算的SQL实现

你要的笛卡尔积结构完全可以通过**自连接(交叉连接)**实现,不需要用Union。核心思路是把同一张表当作两个独立的表来关联,让每个地点都和所有地点(包括自身)配对。

假设你的表名为locations,直接用下面的SQL就能得到预期结果:

SELECT
  loc1.`Location Code` AS location_code_1,
  loc1.Latitude AS lat1,
  loc1.Longitude AS lon1,
  loc2.`Location Code` AS location_code_2,
  loc2.Latitude AS lat2,
  loc2.Longitude AS lon2
FROM locations loc1
CROSS JOIN locations loc2;

如果你习惯老式的SQL写法,也可以用不带ON条件的隐式交叉连接,效果完全一样:

SELECT
  loc1.`Location Code` AS location_code_1,
  loc1.Latitude AS lat1,
  loc1.Longitude AS lon1,
  loc2.`Location Code` AS location_code_2,
  loc2.Latitude AS lat2,
  loc2.Longitude AS lon2
FROM locations loc1, locations loc2;

这两种写法都会生成所有地点的两两组合(含自身配对),正好满足你后续计算距离的需求。

内容的提问来源于stack exchange,提问作者Andrew Moseley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:53:11