2017-05-15 224 views
0

PostgreSQL 8.2を使用してクイッククエリを実行しています。このようなクエリを1000回前に実行しましたが、なぜこれを取得しているのかわかりませんエラー。私はおそらく明白な何かを見逃していますが、私の "FROMのサブクエリはエイリアスを持っていなければなりません"と言っています。サブクエリ「内部」のエイリアスがありますが、それ以外の理由でエラーが発生する理由はわかりません。PostgreSQL "FROMのサブクエリにエイリアスが必要"エラー

SELECT "Branch", "Zip_5", "CountofStops", avg("EarlyTime") As 
    "Average_Arrival_Time" 
    FROM 
    (SELECT branch_id as "Branch", substring(stop_zip_postal_code, 1, 5) as 
    "Zip_5", count(stop_name) as "CountofStops", min(actual_arrival_time) as 
    "EarlyTime" 

    FROM distribution_stop_information 

    WHERE company_no = '001' AND route_date > '3/13/2017' 

    GROUP BY branch_id, stop_zip_postal_code) 
    inner 

    GROUP BY "Branch", "Zip_5" 

    ORDER BY Zip_5 

********** Error ********** 

ERROR: subquery in FROM must have an alias 
SQL state: 42601 
Hint: For example, FROM (SELECT ...) [AS] foo. 

答えて

2

innerは予約語です。エイリアスとして別の名前を使用します。

+0

D'OHのための便利な省略形です!簡単な解決策!なぜ私はそれを考えなかったのですか?ありがとう。 – Emac

0

inner。 。 。 "内部結合"と考えてください。それよりも良いエイリアスが必要です。

SELECT Branch, Zip_5, CountofStops, avg(EarlyTime) As Average_Arrival_Time 
FROM (SELECT branch_id as Branch, left(stop_zip_postal_code, 5) as Zip_5, 
      count(stop_name) as CountofStops, 
      min(actual_arrival_time) as EarlyTime 
     FROM distribution_stop_information 
     WHERE company_no = '001' AND route_date > '2017-03-13' 
     GROUP BY branch_id, stop_zip_postal_code 
    ) b 
GROUP BY Branch, Zip_5 
ORDER BY Zip_5; 

注:

  • 必要な場合を除き、二重引用符で列名をラップしないでください。彼らは余計です。
  • 日付定数の標準形式を使用します。
  • LEFT()substring(. . ., 1, . . .)
+0

@a_horse_with_no_name。 。 。サブクエリには '' Branch "'が定義されています。二重引用符が削除されている場合は、二重引用符は外部クエリでは必要ありません。 –

関連する問題