View

如何使用 INSERT INTO 在 SQLite 中創建視圖?

  • March 29, 2013

我正在嘗試創建將匯總兩個表中的數據的視圖。每個表都有幾列,但它們都有 NAME 和 AREA 列。我希望這兩列在視圖中相應地統一起來。我嘗試使用以下查詢創建視圖:

CREATE VIEW summary AS
INSERT INTO (SELECT Name, SUM(Area) FROM table1 GROUP BY Name)
SELECT *
FROM (SELECT Name, SUM(Area) FROM table2 GROUP BY Name)

但我得到錯誤:SQL error: near "INSERT": syntax error。實際上,我嘗試了涉及 INSERT INTO 的不同查詢,似乎 CREATE VIEW 不適用於 INSERT INTO,並且 INSERT INTO 不接受子查詢 - 只有現有表(甚至臨時表)可以。

如何重寫 CREATE VIEW 語句以實現我的目標?

我猜您想使用UNIONor UNION ALL,而不是INSERT

CREATE VIEW summary AS 
   SELECT Name, SUM(Area) AS Area 
   FROM table1 
   GROUP BY Name 
 UNION ALL 
   SELECT Name, SUM(Area) 
   FROM table2 
   GROUP BY Name ;

如果Name兩個表中的列中都有值,並且您希望將它們匯總在一行中,則可以使用以下命令:

CREATE VIEW summary3 AS 
  SELECT Name, SUM(Area) AS Area 
  FROM summary 
  GROUP BY Name ;

在**SQL-Fiddle測試**

引用自:https://dba.stackexchange.com/questions/38869