2012-12-05 15 views
6

SQL Server 2012Conte, ordine decrescente e selezionare top 5

Abbiamo un tavolo, come ad esempio:

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

Il nostro obiettivo è quello di contare tutti i biglietti che appartengono a ogni tipo (quindi in In questo caso il risultato dovrebbe essere 3 hardware, 2 software, 2 rete, 1 telefono e 1 ticket di database), ordinarli e selezionare le prime 5 righe risultanti.

Stiamo provando a determinare i primi 5 tipi di biglietti "popolari" o più visti (e quanti ce ne sono).

Ho la porzione di conteggio giù, ma non è sicuro come procedere con l'ordinazione decrescente e selezionando la prima 5.

Grazie!

+0

può fornire quello che hai per la parte di conteggio? Potrebbe rendere più facile fornire una risposta che si integrerà meglio in ciò che hai già lavorato su –

risposta

8

In SQL Server è possibile utilizzare TOP di selezionare un certo numero di righe con un ordine da parte di ottenere i record corretti:

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

Vedi SQL Fiddle with Demo

+0

Molto utile, grazie! Marcatura risolta –

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