2012-12-05 33 views
6

SQL Server 2012Count, trật tự desc và chọn top 5

Chúng tôi có một bảng, như ví dụ:

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

mục tiêu của chúng tôi là để đếm lên tất cả vé thuộc từng loại (như vậy trong trường hợp này kết quả sẽ là 3 phần cứng, 2 phần mềm, 2 mạng, 1 điện thoại và 1 vé cơ sở dữ liệu (s)), thứ tự chúng desc và chọn 5 hàng kết quả đầu tiên.

Chúng tôi đang cố gắng xác định 5 loại vé "phổ biến" hoặc được xem nhiều nhất (và có bao nhiêu loại vé).

Tôi đã giảm phần đếm nhưng không chắc chắn cách tiếp tục đặt hàng desc và chọn đầu tiên 5.

Cảm ơn bạn!

+0

Bạn có thể cung cấp những gì bạn có cho phần đếm? Nó có thể làm cho nó dễ dàng hơn để cung cấp một câu trả lời mà sẽ tích hợp tốt hơn vào những gì bạn đã làm việc trên –

Trả lời

8

Trong SQL Server, bạn có thể sử dụng TOP để chọn một số lượng nhất định các hàng cùng với một trật tự bằng cách để có được hồ sơ hợp:

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

Xem SQL Fiddle with Demo

+0

Rất hữu ích, cảm ơn bạn! Đánh dấu đã được giải quyết –

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