Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल अभिव्यक्ति द्वारा ग्रुप क्यों नहीं कह रहा है?

आपके साथ ऐसा सिर्फ इसलिए होता है क्योंकि MySQL SQL के लॉजिक को तोड़ देता है।

मान लें कि हमारे पास टेबल एम्प है:

id ename dept
1  mark  10
2  John  10
3  Mary  10
4  Jane  20

और क्वेरी:

select dept, ename
from emp 
group by dept;

तुम्हें क्या मिलेगा?तुम्हें दो लाइन मिलनी चाहिए, क्योंकि दो विभाग हैं, लेकिन सवाल ईनाम मांगता है। 20 के लिए स्पष्ट है लेकिन 10 के लिए इंजन को क्या वापस करना चाहिए?

यह एक त्रुटि वापस करनी चाहिए। अनुमान नहीं लगा सकता कि क्या ईनाम देना है। ओरेकल ने एक त्रुटि शूट की - आपकी त्रुटि, लेकिन MySQL को एक ईनाम मिलता है (जिसकी गारंटी नहीं है)। यह भ्रामक है और बग का संचालन कर सकता है।

सही प्रश्न होंगे:

select dept, max(ename) --the latest, alaphabeticaly
from emp 
group by dept;

और

--all enames and groups
select dept, ename 
from emp 
group by dept, ename;

इस भाग को ठीक करने के बाद, आपको इसे हल करना होगा

COUNT(*) over() AS rowcount

अंश। ऑरैकल, AFAIK में, आप विश्लेषणात्मक कार्यों को समूह दर प्रश्नों के साथ नहीं मिला सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle sql ट्यूटोरियल :डेटा सेट को प्रतिबंधित करना

  2. Oracle का उपयोग करके INTO का चयन करें

  3. Oracle संग्रहीत कार्यविधि में त्रुटि संदेश लॉग करें

  4. PhpStorm एकाधिक डेटाबेस कनेक्शन के लिए कॉलम को हल करने में असमर्थ

  5. समानांतर में कई प्रक्रियाओं को चलाएँ/निष्पादित करें - Oracle PL/SQL