Sql 如何创建提取最小和最大XY坐标的视图
我正在尝试创建一个显示郊区名称、ssc代码和最小和最大XY的视图。当前的代码给了我所有的坐标,但我不知道如何调整它来选择最小值和最大值,而不会一个接一个地出错Sql 如何创建提取最小和最大XY坐标的视图,sql,postgresql,Sql,Postgresql,我正在尝试创建一个显示郊区名称、ssc代码和最小和最大XY的视图。当前的代码给了我所有的坐标,但我不知道如何调整它来选择最小值和最大值,而不会一个接一个地出错 CREATE VIEW V_SUBURBBOUNDS AS SELECT s.suburb_id, s.ssc_code, s.suburb, v.arc_id, v.x_coord, v.y_coord FROM SUBURB_ATTRIBUTE s, SUBURB_VERTEX v, SUBURB_ARC a W
CREATE VIEW V_SUBURBBOUNDS AS
SELECT s.suburb_id, s.ssc_code, s.suburb, v.arc_id, v.x_coord, v.y_coord
FROM SUBURB_ATTRIBUTE s,
SUBURB_VERTEX v,
SUBURB_ARC a
WHERE a.arc_id=v.arc_id
OR a.left_poly=s.suburb_id
OR a.right_poly=s.suburb_id
是否需要连接到该特定表以提取它们?您需要aggreation函数和groupby
CREATE VIEW V_SUBURBBOUNDS AS
SELECT s.suburb_id, s.ssc_code, s.suburb, v.arc_id
, min(v.x_coord) min_x, min(v.y_coord) min_y
, max(v.x_coord) max_x, max(v.y_coord) max_y
FROM SUBURB_ARC a
INNER JOIN SUBURB_ATTRIBUTE s ON ( a.left_poly=s.suburb_id OR a.right_poly=s.suburb_id)
INNER JOIN SUBURB_VERTEX v ON a.arc_id=v.arc_id
GROUP BY s.suburb_id, s.ssc_code, s.suburb, v.arc_id
您应该使用显式连接语法(而不是基于where的旧隐式连接语法)今天的提示:始终使用现代的显式
JOIN
语法。更易于写入(无错误),更易于读取(和维护),并且在需要时更易于转换为外部联接。