2016-09-19 18 views
0

我必须进行查询才能显示我的gridview的数据。我在计算每个门票类别的门票数量,但如果该门票的门票数小于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

一些东西使用CASE语句尝试: http://stackoverflow.com/questions/190 96344 /罐您-组由上带有一个情况,当-然后别名名称 – Kieveli

回答

0

尝试这样

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 
相关问题