2012-12-05 9 views
6

SQL Server 2012Hrabia, porządek desc i wybrać top 5

Mamy tabeli, jak takie:

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

Naszym celem jest, aby policzyć wszystkie bilety należące do każdego typu (a więc w w tym przypadku wynik powinien wynosić 3 elementy sprzętowe, 2 oprogramowanie, 2 sieci, 1 telefon i 1 bilet (y) bazy danych), uporządkować je i wybrać pierwszych 5 wierszy wynikowych.

Staramy się określić 5 najlepszych "popularnych" lub najczęściej widywanych rodzajów biletów (i ile ich jest).

Mam część odliczanie ale nie wiem, jak postępować z zamówieniem opis produktu i wybierając pierwszą 5.

Dziękujemy!

+0

można podać to, co masz dla części liczącej? Może ułatwić udzielenie odpowiedzi, która będzie lepiej zintegrowana z tym, nad czym już pracowałeś –

Odpowiedz

8

W SQL Server można użyć TOP aby wybrać określoną liczbę wierszy wraz z zamówieniem przez uzyskać odpowiednie zapisy:

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

Zobacz SQL Fiddle with Demo

+0

Bardzo przydatne, dziękuję! Oznaczenie zostało usunięte –

0
select * from (
    select type, count(*) 
    from table 
    group by type 
    order by 2 desc 
) 
where rownum <=5