2012-01-18 10 views
50

से चुनें * मैं कॉलम 1, कॉलम 2 और कुल योग का योग प्राप्त करना चाहता हूं। Postgres में मैं इसे इस तरह कर सकते हैं: (स्टार नोटिस)* सबक्वायरी

SELECT *, a+b AS total_sum FROM 
(
    SELECT SUM(column1) AS a, SUM(column2) AS b 
    FROM table 
) 

लेकिन Oracle में मैं एक वाक्य रचना त्रुटि मिलती है और इस का उपयोग करने के लिए है:

SELECT a,b, a+b AS total_sum FROM 
(
    SELECT SUM(column1) AS a, SUM(column2) AS b 
    FROM table 
) 

मैं वास्तव में स्तंभों की बहुत कुछ है वापस लौटने के लिए, इसलिए मैं मुख्य क्वेरी में कॉलम नाम फिर से लिखना नहीं चाहता हूं। क्या कोई आसान समाधान है?

मैं आंतरिक क्वेरी में + बी का उपयोग नहीं कर सकता क्योंकि इस जगह पर ज्ञात नहीं है। मैं SELECT SELECT SUM(column1) AS a, SUM(column2) AS b, SUM(column1)+SUM(column2) AS total_sum का उपयोग नहीं करना चाहता हूं।

+1

'चयन योग (col1) एक, SUM (col2) के रूप में) + एसयूएम (col2) AS__um तालिका से '? – MatBailie

उत्तर

107

आप इसे aliasing और * से पहले उर्फ ​​जोड़कर कि उप क्वेरी से हर स्तंभ का चयन कर सकते हैं:, SUM (col1 ख के रूप में

SELECT t.*, a+b AS total_sum 
FROM 
(
    SELECT SUM(column1) AS a, SUM(column2) AS b 
    FROM table 
) t 
संबंधित मुद्दे