2008-11-06 22 views
25

कैसे करने के लिए एक अन्य नाम का उपयोग, उदाहरण के लिए एक प्रश्न 'द्वारा समूह':समूह उर्फ ​​(Oracle) द्वारा

select count(*), (select * from....) as alias_column 
from table 
group by alias_column 

मैं 'alias_column' मिलती है: INVALID_IDENTIFIER त्रुटि संदेश। क्यूं कर? इस क्वेरी को कैसे समूहबद्ध करें?

उत्तर

54
select 
    count(count_col), 
    alias_column 
from 
    (
    select 
    count_col, 
    (select value from....) as alias_column 
    from 
    table 
) as inline 
group by 
    alias_column 

ग्रुपिंग सामान्य रूप से ग्रुपिंग समूह में संबंधित अभिव्यक्ति को दोहराते हैं तो समूह सामान्य रूप से काम करता है। बस उपनाम का उल्लेख करना संभव नहीं है, क्योंकि चयन चरण एक क्वेरी के निष्पादन के लिए अंतिम चरण है, समूह पहले से होता है, जब उपनाम नाम अभी तक परिभाषित नहीं किए जाते हैं।

उप-क्वेरी के परिणामस्वरूप ग्रुप करने के लिए, आपको ऊपर बताए गए अनुसार एक छोटी सी चीज लेनी होगी और घोंसला वाली क्वेरी का उपयोग करना होगा।

7

नेस्ट उर्फ ​​स्तंभ के साथ क्वेरी:

select count(*), alias_column 
from 
(select empno, (select deptno from emp where emp.empno = e.empno) as alias_column 
    from emp e 
) 
group by alias_column; 
1
select count(*), (select * from....) as alias_column 
from table 
group by (select * from....) 

ओरेकल में आप खंड द्वारा एक समूह में किसी अन्य नाम का उपयोग नहीं कर सकते हैं।

2

ओरेकल में उपनाम का उपयोग करने के लिए आपको यह सुनिश्चित करने की आवश्यकता है कि ऊर्फ को उस बिंदु पर आपकी क्वेरी द्वारा परिभाषित किया गया है जिस पर उपनाम का उपयोग किया जा रहा है।

इस बस एक सबक्वेरी के रूप में मूल प्रश्न के इलाज के लिए है करने के लिए सबसे सरल तरीका है - इस मामले में,

select count(*), (select * from....) as alias_column 
from table 
group by (select * from....) 

हो जाता है

select count, alias_column 
from 
    (select count(*) as count, (select * from....) as alias_column 
    from table) 
group by alias_column 

मैं प्रदर्शन से बात नहीं कर सकते निहितार्थ, लेकिन अगर आप अपनी क्वेरी में उपनाम का पुन: उपयोग करने की कोशिश कर रहे हैं तो लिखना बहुत तेज़ है - सब कुछ कोष्ठक में फेंक दें और एक स्तर ऊपर कूदें ...

संबंधित मुद्दे