2016-09-19 4 views
0

グリッドビューのデータを表示するためにクエリを作成する必要があります。私は各チケットカテゴリのチケットの数を数えていますが、そのカテゴリのチケット数が3未満であれば、それを「他の」カテゴリーに入れる必要があります。count <= 3のときに別の列の値を変更する

Select 
count(ticket.id) As 'Tickets', 
if(count(ticket.id) <= 3, "Other",ticketCategoryName) As 'Ticket Category' 
FROM ds_tickets 
GROUP BY 'Ticket Category 

の代わりにこのような何か持つ:

+----------------+-------------+ 
| TicketCategory | TicketCount | 
+----------------+-------------+ 
| Category1  |   2 | 
| Category2  |   3 | 
| Category3  |   4 | 
| Category4  |   5 | 
+----------------+-------------+ 

を、私はそれのようになりたい:

+----------------+-------------+ 
| TicketCategory | TicketCount | 
+----------------+-------------+ 
| Other   |   5 | 
| Category3  |   4 | 
| Category4  |   5 | 
+----------------+-------------+ 
+0

のようないくつかのことを試してみてください: http://stackoverflow.com/questions/190 96344/can-you-group-by-a-case-when-then-alias-name – Kieveli

答えて

0

CASE文を使用してみてください。この

SELECT CASE WHEN CNT <= 3 THEN 'Other' ELSE TicketCategory END 'Ticket Category' , 
     SUM(CNT) 
FROM( 
    SELECT TicketCategory, COUNT(*) as CNT 
    FROM Table 
    GROUP BY TicketCategory 
)M 
GROUP BY CASE WHEN CNT <= 3 THEN 'Other' ELSE TicketCategory END 
関連する問題