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

क्या ऑर्डर की गई तालिका को समूहीकृत करना हमेशा पहली पंक्ति लौटाएगा? माई एसक्यूएल

नहीं, यह सही तरीका नहीं है।

मेरा मानना ​​है कि आप इस तरह के एक प्रश्न के बारे में बात कर रहे हैं:

SELECT  product.*, MIN(qty)
FROM    product
GROUP BY
        type
ORDER BY
        qty

आप यहां जो कर रहे हैं वह MySQL का उपयोग कर रहा है का एक्सटेंशन जो आपको GROUP BY में असंगठित/असमूहीकृत कॉलम चुनने की अनुमति देता है क्वेरी।

इसका उपयोग ज्यादातर JOIN . दोनों वाले प्रश्नों में किया जाता है और एक GROUP BY PRIMARY KEY . पर , इस तरह:

SELECT  order.id, order.customer, SUM(price)
FROM    order
JOIN    orderline
ON      orderline.order_id = order.id
GROUP BY
        order.id

यहां, order.customer न तो समूहबद्ध है और न ही एकत्रित, लेकिन चूंकि आप order.id . पर समूह बना रहे हैं , प्रत्येक समूह में समान मान होने की गारंटी है।

आपके मामले में, qty . के सभी मान समूह के भीतर अलग-अलग मान हैं।

इसकी गारंटी नहीं है कि समूह के भीतर इंजन किस रिकॉर्ड से मूल्य लेगा।

आपको यह करना चाहिए:

SELECT  p.*
FROM    (
        SELECT  DISTINCT type
        FROM    product p
        ) pd
JOIN    p
ON      p.id = 
        (
        SELECT  pi.id
        FROM    product pi
        WHERE   pi.type = pd.type
        ORDER BY
                type, qty, id
        LIMIT 1
        )

यदि आप product (type, qty, id) . पर एक अनुक्रमणिका बनाते हैं , यह क्वेरी तेजी से काम करेगी।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विदेशी कुंजी के लिए कार्रवाई कैसे बदलें

  2. दो प्रश्नों के परिणाम में शामिल होना mysql

  3. PHP HTML स्ट्रिंग को डेटाबेस में कैसे सेव करें

  4. mysql/अस्पष्ट खोज के लिए लेवेनशेटिन दूरी का कार्यान्वयन?

  5. रूबी, और MySQL के साथ एकाधिक शब्द खोज