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

ऑर्डर देकर ग्रुप करें

तो टिप्पणियों और SqlFiddle के अतिरिक्त से ऐसा लगता है कि आप यूएस प्रति प्लेटफॉर्म पर एक प्राथमिकता के साथ एक विभाजित पंक्ति संख्या बनाना चाहते हैं और फिर पहले रिकॉर्ड का चयन करें। Mysql में विभाजित पंक्ति संख्याओं को करने का एक तरीका यहाँ चरों का उपयोग करना एक उदाहरण है:

SELECT
  territory_id
  ,platform_type_id
  ,store_url
FROM
( SELECT
    *
    ,@PlatFormRowNum:= IF(@prevplatform = platform_type_id, @PlatFormRowNum + 1, 1) as PlatformRowNum
    ,@prevplatform:= platform_type_id
  FROM
    main_itemmaster m
    CROSS JOIN (SELECT @prevplatform:='',@PlatFormRowNum=0) var
  ORDER BY
    platform_type_id
    ,CASE WHEN territory_id = 'US' THEN 0 ELSE 1 END
    ,territory_id
) t
WHERE
  t.PlatformRowNum = 1
ORDER BY
  t.platform_type_id

SQL Fiddle:http://sqlfiddle.com/#!9/81c3b6/12

मूल रूप से यह प्लेटफॉर्म द्वारा पंक्ति संख्या को विभाजित करता है, किसी अन्य क्षेत्र से पहले यूएस को आदेश देता है और फिर प्रत्येक प्लेटफॉर्म के लिए पहली पंक्ति का चयन करता है। एक सवाल/चाल यह है कि आप कैसे चुनते हैं कि कौन सा वापस लौटना है जब यूएस प्लेटफॉर्म के लिए उपलब्ध नहीं है, केवल क्षेत्र_आईडी के आरोही वर्णानुक्रम में?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप Laravel 4 में एक ऑटो-इंक्रीमेंटिंग प्राथमिक कुंजी के रूप में BIGINT का उपयोग कैसे करते हैं?

  2. AES_ENCRYPT का ठीक से उपयोग कैसे करें?

  3. हाइबरनेट 4.3.5 Oracle10g डेटाबेस के साथ काम नहीं कर रहा है

  4. एंटिटी फ्रेमवर्क और MySQL के साथ आशावादी संगामिति

  5. डेटाबेस के लिए उपयोगकर्ता को MySQL अनुदान विशेषाधिकार