mysql 如何分解分组所依据的数据?

uemypmqf  于 12个月前  发布在  Mysql
关注(0)|答案(1)|浏览(116)

我有一个表,表中的每个示例都是一张售出的票,票可以有不同的票类型。看起来像这样:
| 活动|门票类型|
| - -----|- -----|
| 活动1| a|
| 活动二|a|
| 活动1| B|
| 活动二|a|
| 活动1| a|
我希望它是由事件分组,但显示该事件的总门票,以及打破了每个门票类型的数量。
| 活动|门票总数|机票类型a|机票类型B|
| - -----|- -----|- -----|- -----|
| 活动1| 3| 2| 1|
| 活动二|2| 2| 0|
我已经尝试了一些不同的查询,但没有显示我正在寻找的结果。这在一个查询中是可能的吗?

pqwbnv8z

pqwbnv8z1#

是的,可以使用GROUP BY对事件数据进行分组,然后计算总数。以下查询的工作原理是先计算票证的数量,然后计算每个类型“a”和“b”的票证数量。

SELECT 
    Event,
    COUNT(*) AS 'Total Tickets',
    COUNT(CASE WHEN TicketType = 'a' THEN 1 END) AS 'Ticket Type a',
    COUNT(CASE WHEN TicketType = 'b' THEN 1 END) AS 'Ticket Type b'
FROM
    Tickets
GROUP BY
    Event;

相关问题