Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何创建提取最小和最大XY坐标的视图_Sql_Postgresql - Fatal编程技术网

Sql 如何创建提取最小和最大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

我正在尝试创建一个显示郊区名称、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
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
语法。更易于写入(无错误),更易于读取(和维护),并且在需要时更易于转换为外部联接。