0

SQL 構文を正しく取得するのに問題があります。FULL OUTER JOINに必要な3つのテーブルがありますが、最初はそのうちの2つで動作させようとしています。何が悪いのか理解できません。

これはまだ機能しています:

SELECT SUM(A.charge-A.comp), COUNT(A.id)
FROM A
FULL JOIN init ON (A.house=init.house)
WHERE A.tag='V' AND A.house='first'

しかし、選択したリストに初期化フィールドを追加すると、構文エラーが発生します。したがって、これはもう機能していません。

SELECT SUM(A.charge-A.comp), COUNT(A.id), init.resp
FROM A
FULL JOIN init ON (A.house=init.house)
WHERE A.tag='V' AND A.house='first'

これはなぜですか?

ところで。PostgreSQL 9.1 を使用しています。

4

1 に答える 1

2

問題は結合とは関係ありません。集計されていないgroup byを持つ集計関数があるため、 が必要です。おそらくあなたは次のことを意味します:

SELECT SUM(A.charge-A.comp), COUNT(A.id), init.resp
FROM A
FULL JOIN init ON (A.house=init.house)
WHERE A.tag='V' AND A.house='first'
group by init.resp;

それ以外の場合は、集計関数が必要になる場合があります。

SELECT SUM(A.charge-A.comp), COUNT(A.id), sum(init.resp)
FROM A
FULL JOIN init ON (A.house=init.house)
WHERE A.tag='V' AND A.house='first'
于 2013-07-18T14:30:31.487 に答える