2016-09-21 56 views
0

我有兩個表完全相同的列名稱,但具有不同的數據或值。現在我要統計table_2第一列的table_1聯合數據第一列的數據總數。這個怎麼做?如何統計PostgreSQL中不同表的特定兩列的數據?

____________________    ________________________ 
| Table_1  |    |  Table_2   | 
---------+----------    -----------+------------| 
|arsc_lvl| Dist Name|    | arsc_lvl | Dist_Name | 
---------+----------    -----------+------------| 
|1  | Banke |    | 5  | Bara  | 
|5  | Banke |    | 7  | Bara  | 
|6  | Bara  |    | 9  | Bara  | 
---------+----------+    -----------+------------+ 

select count ("arsc_lvl") 
from "Table_1", "Table_2" 
where 
"arsc_lvl"<=10 

這也沒有提供我想要什麼。我甚至用

加入這樣的:

SELECT * 
FROM [MyTable] Table_1 
    INNER JOIN [MyOtherTable] Table_2 
     ON Table_1."arsc_lv" = Table_2."arsc_lv" 

它也沒有爲我工作。 我被困在這裏,請幫忙。

+1

請顯示這些表格應該返回的數據。這是有點不清楚你想要什麼結果。 –

+0

我的查詢應該統計兩個表中的arsc_lvl數據總數。 我的意思是: 3 from Table_1 + 3 from Table_2 = 6 –

回答

0

您希望計算工會的行數,所以它翻譯成SQL:

SELECT count(*) 
FROM (SELECT * FROM table_1 
     UNION 
     SELECT * FROM table_2) u; 

如果你不想消除重複,使用UNION ALL代替UNION

+0

非常感謝。這對我有效。 –

+0

在此表示感謝的方式是將答案upvote和/或標記爲正確。 –

-1

從table1,table2中選擇count(*),arsc_lvl;

+0

遺憾地說,但這個查詢dint工作。你能提出什麼建議嗎? –

+0

這個計數的是交叉產品,而不是工會。 –

+0

我嘗試了你的建議,但很抱歉說它沒有工作。我想要計算特定的列不是整個表格。我希望我的代碼顯示table_1和table_1第一列的計數總和。你有什麼進一步的想法? –

-1

你可以試試這個對我有效。 從tbl1連接tbl2選擇count(*)tbl1.id = tbl2.id;

+0

這將計算交叉點,而不是工會。 –

+0

對不起,但我不能使用「*」,因爲我想從第一個表加上arsc_lvl加上第二個表中的arsc_lvl。 這兩個表具有完全相同的列表表名「arsc_lvl」。 我嘗試使用「arsc_lvl」insted的*再次它dint工作。 –

相關問題