2017-07-27 10 views
0

この質問の一般的な目的は、更新可能なビューシステムを使用してQGISで作業できるようにすることです。PostgreSQL 9.5複数のSELECTを選択

私はテーブル "建物"とテーブル "アパート"を持っているとしましょう。のは、テーブルがように定義されているとしましょう:私は床でグループ化されたマンションの数を表示するには、テーブルの建物のビューで、希望

CREATE TABLE building (
    id_building INTEGER PRIMARY KEY, 
    adress VARCHAR(255) 
    ); 

CREATE TABLE apartment (
    id_apartment INTEGER PRIMARY KEY, 
    floor INTEGER, 
    id_building INTEGER, 
    CONSTRAINT fk1 FOREIGN KEY (id_building) REFERENCES building (id_building) 
    ); 

INSERT INTO building VALUES (1, 'adress1'); 
INSERT INTO building VALUES (2, 'adress2'); 

INSERT INTO apartment VALUES (1, 0, 1); 
INSERT INTO apartment VALUES (2, 0, 1); 
INSERT INTO apartment VALUES (3, 0, 1); 
INSERT INTO apartment VALUES (4, 1, 1); 
INSERT INTO apartment VALUES (5, 1, 1); 
INSERT INTO apartment VALUES (6, 1, 1); 
INSERT INTO apartment VALUES (7, 2, 1); 
INSERT INTO apartment VALUES (8, 2, 1); 
INSERT INTO apartment VALUES (9, 0, 2); 
INSERT INTO apartment VALUES (10, 1, 2); 
INSERT INTO apartment VALUES (11, 1, 2); 
INSERT INTO apartment VALUES (12, 2, 2); 
INSERT INTO apartment VALUES (13, 2, 2); 

。可能であれば、そうする方法は何でしょうか?また、フロアの数が変わる可能性があるため、各建物のフロア数に比べて何らかの柔軟性のあるビューを自動的に生成できるようにする方がよいでしょう。お時間をhttp://rextester.com/MTIJ52125

ありがとう:

は、ここでは、このコードのバージョンがあります。

答えて

1

たぶん、そのちょうどその簡単:確かに

CREATE VIEW apartments AS (
    SELECT 
    building.id_building, 
    apartment.floor, 
    count(apartment.id_apartment) as apartments_per_floor 
FROM 
    apartment,building 
WHERE 
    building.id_building = apartment.id_building 
GROUP BY apartment.floor, building.id_building, apartment.floor 
ORDER BY 1,2 
); 

SELECT * FROM apartments; 
+0

!今はQGISで正しく提示する方法を理解する必要があります。ありがとう:) –

関連する問題