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

SQL सर्वर में विभिन्न फ़ील्ड से अधिकतम मान प्राप्त करें और संबंधित मान दिखाएं

ऐसा करने के कई तरीके हैं:

WHERE . में एक फ़िल्टर खंड:

select id, name, population
from yourtable
where population in (select max(population)
                     from yourtable)

या एक सबक्वेरी:

select id, name, population
from yourtable t1
inner join
(
  select max(population) MaxPop
  from yourtable
) t2
  on t1.population = t2.maxpop;

या आप TOP WITH TIES . का उपयोग कर सकते हैं . यदि कोई संबंध नहीं हो सकता है, तो आप with ties को हटा सकते हैं . इसमें समान जनसंख्या मान वाली सभी पंक्तियाँ शामिल होंगी:

select top 1 with ties id, name, population
from yourtable
order by population desc

चूंकि आप SQL सर्वर का उपयोग कर रहे हैं, इसलिए आप परिणाम प्राप्त करने के लिए रैंकिंग फ़ंक्शन का भी उपयोग कर सकते हैं:

select id, name, population
from
(
  select id, name, population,
    row_number() over(order by population desc) rn
  from yourtable
) src
where rn = 1

सभी के डेमो के साथ SQL Fiddle देखें।

रैंकिंग फ़ंक्शन पर एक साइड नोट के रूप में, आप dense_rank() . का उपयोग करना चाह सकते हैं row_number() . के बजाय . फिर यदि आपके पास समान जनसंख्या वाले एक से अधिक शहर हैं तो आपको दोनों शहर के नाम मिलेंगे। (डेमो देखें)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर डेटाबेस का संस्करण बनाना

  2. SQL सर्वर में संग्रहीत कार्यविधि के लिए स्तंभ जानकारी लौटाएँ:sp_sproc_columns

  3. SQL सर्वर 2005 में फ़ोन नंबर संग्रहीत करने के लिए किस डेटाटाइप का उपयोग किया जाना चाहिए?

  4. डेटाबेस तालिका से यादृच्छिक रिकॉर्ड (टी-एसक्यूएल)

  5. SQL सर्वर एक्सप्रेस संस्करण में नौकरियां कैसे पैदा करें