У меня есть эти данные:
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
DROP TABLE #temp
CREATE TABLE #temp
(
Id INT IDENTITY(1, 1) ,
X FLOAT NOT NULL ,
Y FLOAT NOT NULL
)
INSERT INTO #temp (X, Y) VALUES (0, 0)
INSERT INTO #temp (X, Y) VALUES (0, 1)
INSERT INTO #temp (X, Y) VALUES (0, 2)
INSERT INTO #temp (X, Y) VALUES (0.5, 1)
INSERT INTO #temp (X, Y) VALUES (1, 1)
INSERT INTO #temp (X, Y) VALUES (1, 2)
INSERT INTO #temp (X, Y) VALUES (1.5, 0.5)
INSERT INTO #temp (X, Y) VALUES (2, 0)
INSERT INTO #temp (X, Y) VALUES (2, 1)
Я хотел бы удалить точки, которые содержатся в других точках, например:
(0, 1)
(1, 1)
(1.5, 0.5)
для получения внешнего большинства точек, которые определяют внешний многоугольник, состоящий только из вертикальных и горизонтальных линий без избыточности (например, (0, 1), является избыточной точкой). Может ли это быть достигнуто с помощью подхода TSQL на основе набора в SQL Server 2014?
PS:
График рассеяния данных выглядит следующим образом:
Я хотел бы удалить окруженные точки. В конечном счете, я за внешней границей (рисуется красным цветом). Надеюсь, это делает его более ясным.