我在写一个查询来总结OD矩阵表中的次数行程时遇到问题。对于使用MS Access以外的数据库,我还是个新手,所以请原谅我的经验不足。 SMGZ是带有区域数量的表格,matrix_od是矩阵表格,其中所有OD对(4109 * 4109)从区域到区域以及总体行程类型数量。我不确定这是编写此查询的最佳方式。所以我需要做的就是根据OD总结4种类型的旅行(LHDT,MHDT,HHDT,HDT_Tota)。非常感谢帮助。POSTGRES Group/Inner Join
SELECT
smgz.smg_zone AS "O_ID",
smgz.x AS "O_X",
smgz.y AS "O_Y",
smgz1.smg_zone AS "D_ID",
smgz1.x AS "D_X",
smgz1.y AS "D_Y",
SUM(matrix_od."LHDT") AS "LHDT_Tot",
SUM(matrix_od."MHDT") AS "MHDT_Tot",
SUM(matrix_od."HHDT") AS "HHDT_Tot",
SUM(matrix_od."TOT_HDT") AS "HDT_Tot"
FROM
public.smgz,
public.matrix_od,
public.smgz smgz1
GROUP BY
"O_ID","O_X","O_Y","D_ID","D_X","D_Y"
INNER JOIN
smgz on matrix_od.O_ID = smgz.ID
INNER JOIN
smgz1 on matrix_od.D_ID = smgz1.ID;
ERROR: syntax error at or near "INNER"
LINE 18: INNER JOIN
^
********** Error **********
ERROR: syntax error at or near "INNER"
SQL state: 42601
Character: 414
连接应该在GROUP BY之前。另外,您正在执行相当笛卡尔产品 – Lamak 2015-03-24 21:42:45
您正在混合隐式连接语法和显式'JOIN'运算符。不要这样做。 – 2015-03-24 21:48:46