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

SQL सॉर्टिंग समूह द्वारा कथन का पालन नहीं करता है, हमेशा प्राथमिक कुंजी का उपयोग करता है

क्या हो रहा है इसके बारे में स्पष्टीकरण :

आप एक GROUP BY का प्रदर्शन कर रहे हैं staff.department . पर , हालांकि आपका SELECT सूची में 2 नॉन-ग्रुपिंग कॉलम हैं staff.workerID, staff.name . मानक sql में यह एक सिंटैक्स त्रुटि है, हालाँकि MySql इसकी अनुमति देता है इसलिए क्वेरी लेखकों को यह सुनिश्चित करना होगा कि वे ऐसी स्थितियों को स्वयं संभालें।

संदर्भ:http://dev.mysql.com /doc/refman/5.0/hi/group-by-handling.html

MySQL 5.1 से शुरू होकर गैर-मानक सुविधा को sql_mode में ONLY_FULL_GROUP_BY ध्वज सेट करके अक्षम किया जा सकता है:http://dev.mysql.com/doc/refman/5.6/hi/sql-mode.html#sqlmode_only_full_group_by

कैसे ठीक करें :

select staff.workerID, staff.name, staff.department, staff.salary
from staff
join (
  select staff.department, max(staff.salary) AS biggest
  from staff
  group by staff.department
) t
on t.department = staff.department and t.biggest = staff.salary

आंतरिक क्वेरी में, GROUP BY का उपयोग करके विभाग और उसका उच्चतम वेतन प्राप्त करें। फिर बाहरी क्वेरी में उन परिणामों को मुख्य तालिका के साथ जोड़ दें जो आपको वांछित परिणाम देगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql समान मान वाली पंक्तियों को कैसे क्रमित करता है?

  2. मुझे $wpdb->तैयार करने का उपयोग कब करना चाहिए, यदि बिल्कुल भी?

  3. MySQL INSERT ... थोक डालने के लिए django 1.4 के साथ डुप्लीकेट कुंजी अद्यतन पर

  4. हाइबरनेट और एसक्यूएल में स्ट्रिंग क्वेरी में अंडरस्कोर से कैसे बचें?

  5. MySQL डेटा प्रकार:जानें कि किसका उपयोग करना है और कैसे