【发布时间】:2016-10-20 00:22:43
【问题描述】:
我有一个查询,它返回距离一组 XY 坐标最远的Sighting_id。我试图在 XY 坐标上创建基于函数的索引以加快查询速度,我看到了如何为包含字符串的字段构建索引,但我不确定如何在 xy 坐标上构建。
目击的模式(sighting_id(pk)、spotter_id、bird_id、纬度、经度、日期、描述)
WITH params as (SELECT -28 as lat, 151 as lon
FROM dual)
SELECT sighting_id, sqrt(power(lat - latitude, 2) + power(lon - longitude, 2))
AS distance FROM sightings CROSS JOIN params
WHERE sqrt(power(lat - latitude, 2) + power(lon - longitude, 2)) =
(SELECT MAX(sqrt(power(lat - latitude, 2) + power(lon - longitude, 2)))
FROM sightings CROSS JOIN params);
【问题讨论】:
标签: sql oracle function indexing