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

प्रत्येक समूह के लिए 2 पंक्तियों के साथ कॉलम द्वारा MYSQL समूह

यदि आपको दो मनमानी आईडी चाहिए, तो min() . का उपयोग करें और max() :

SELECT c.`cat_name` , min(id), max(id)
FROM `info` i INNER JOIN
     `category` c
     ON i.`cat_id` = c.`cat_id`
WHERE c.`cat_name` IS NOT NULL
GROUP BY c`.`cat_name`
ORDER BY c.`cat_name` ASC ;

नोट:आप LEFT JOIN का उपयोग कर रहे हैं और फिर सेकंड . में एक कॉलम द्वारा एकत्र करना टेबल। यह आमतौर पर एक अच्छा विचार नहीं है, क्योंकि गैर-मिलान सभी को NULL . में रखा जाता है समूह। इसके अलावा, आपका WHERE क्लॉज LEFT JOIN को बदल देता है एक INNER JOIN . के लिए वैसे भी, तो मैंने इसे ठीक कर दिया है। WHERE cat_name . के आधार पर खंड आवश्यक हो भी सकता है और नहीं भी हमेशा NULL होता है ।

यदि आप दो सबसे बड़े या सबसे छोटे चाहते हैं -- और उन्हें एक ही कॉलम में रख सकते हैं:

SELECT c.`cat_name`,
       substring_index(group_concat id order by id), ',', 2) as ids_2 
FROM `info` i INNER JOIN
     `category` c
     ON i.`cat_id` = c.`cat_id`
WHERE c.`cat_name` IS NOT NULL
GROUP BY c`.`cat_name`
ORDER BY c.`cat_name` ASC ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SHOW TABLES क्वेरी को कैसे सीमित करें

  2. MySQL उप-योग ढूंढ रहा है

  3. SQL कॉलम द्वारा फ़िल्टर किए गए कॉलम पर केवल अधिकतम मान वाली पंक्तियों का चयन करें

  4. केकपीएचपी में कई मायने रखता है

  5. ईवेंट के साथ सभी ईवेंट चुनें-> शेड्यूल-> केकपीएचपी में प्रारंभ और समाप्ति तिथियों के बीच की तिथि