我有2个经纬度为ORACLE常见位置的表格,我正在计算这两个位置之间的距离并基于它计算坚持报告。我想选择distict VISITOR_ID行,优先考虑具有Adherence的访问者为'N'。以下是我正在使用的查询,并且还附加了查询的示例输出。选择不同的记录基于列,根据其他条件优先选择记录
SELECT DISTINCT rv.VISITOR_ID as VISITOR_ID, rv.VISIT_ENT_NAME as Location_Name,
ACOS(SIN(RADIANS(rg.Latitude)) * SIN(RADIANS(rv.Latitude))
+ COS(RADIANS(rg.Latitude)) * COS(RADIANS(rv.Latitude))
* COS(RADIANS(rg.Longitude) - RADIANS(rv.Longitude))
) * 6371 AS DISTANCE,
(CASE WHEN ACOS(SIN(RADIANS(rg.Latitude)) * SIN(RADIANS(rv.Latitude))
+ COS(RADIANS(rg.Latitude)) * COS(RADIANS(rv.Latitude))
* COS(RADIANS(rg.Longitude) - RADIANS(rv.Longitude))
) * 6371 < 200 THEN 'Y' ELSE 'N' END) AS Adherence
From RANDOM_VISIT rv
LEFT JOIN GEOTAG rg ON rv.VISITOR_ID = rg.CODE;
结果的询问的:
预期结果应该是选择不同visitor_id但同时选择distint优先考虑粘附= 'N':
请张贴数据格式的文本,没有图像 – Aleksej
如果什么对于给定的ID没有行与坚持= N?以及如何在具有相同ID的许多行中选择所有遵守= N – Aleksej
如果对于给定ID没有遵守= N的行,则将选择其他不同的visitor_id。我要求在选择不同的visitor_id时给予偏好,但不强制每个visitor_id都有Adherence ='N'。 –