7

SQL Server 2012

次のようなテーブルがあります。

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つのデータベースチケットになるはずです)、それらをdescで注文し、最初の5つの結果を選択することです。行。

私たちは、上位5つの「人気のある」または最もよく見られるチケットタイプ(およびその数)を特定しようとしています。

カウント部分が減りましたが、descの注文と最初の5つの選択の進め方がわかりません。

ありがとうございました!

4

2 に答える 2

12

SQL Server ではTOP、適切なレコードを取得するために、order by と共に特定の数の行を選択するために使用できます。

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

デモで SQL Fiddle を参照してください

于 2012-12-06T00:06:55.860 に答える
1
select * from (
    select type, count(*) 
    from table
    group by type
    order by 2 desc
)
where rownum <=5
于 2012-12-06T00:05:34.980 に答える