2012-12-05 8 views
6

एसक्यूएल सर्वर 2012गणना, आदेश की वर्णन और चयन शीर्ष 5

हम इस तरह की तरह एक मेज, है:

ticket, type 
------------------ 
1234, hardware 
1543, software 
8859, network 
5832, hardware 
4900, hardware 
8403, software 
7859, network 
4332, telephone 
8721, database 

हमारा लक्ष्य (प्रत्येक प्रकार से संबंधित सभी टिकट अप गिनती करने के लिए इतना है इस मामले का नतीजा 3 हार्डवेयर, 2 सॉफ्टवेयर, 2 नेटवर्क, 1 टेलीफोन और 1 डेटाबेस टिकट होना चाहिए), उन्हें क्रमबद्ध करें और पहली 5 परिणामी पंक्तियों का चयन करें।

हम शीर्ष 5 "लोकप्रिय" या सबसे ज्यादा देखे गए टिकट प्रकार (और कितने हैं) निर्धारित करने की कोशिश कर रहे हैं।

मैं नीचे गिनती भाग मिल गया है, लेकिन यकीन है कि desc आदेश देने और का चयन पहले 5.

धन्यवाद के साथ आगे बढ़ना करने के लिए कैसे नहीं!

+0

आप प्रदान कर सकते हैं तुम्हारे पास क्या है गिनती भाग के लिए? यह एक ऐसा उत्तर प्रदान करना आसान कर सकता है जो –

उत्तर

8

एसक्यूएल सर्वर में आप द्वारा एक आदेश के साथ पंक्तियों की एक निश्चित संख्या का चयन करने के TOP उपयोग कर सकते हैं उचित रिकॉर्ड प्राप्त करने के लिए:

select top 5 type, count(*) Total 
from yourtable 
group by type 
order by total desc 

देखें SQL Fiddle with Demo

+0

पर पहले से ही काम करने में बेहतर एकीकृत होगा, बहुत उपयोगी, धन्यवाद! हल किया जा रहा है –

0
select * from (
    select type, count(*) 
    from table 
    group by type 
    order by 2 desc 
) 
where rownum <=5 
संबंधित मुद्दे