我有一个数据库,可以追踪人们在一个集市的摊位上赢得的奖品。大多数摊位都有重叠和类似的奖品,因此参与者可以从两个摊位中赢得一个枕头(例如)。
现在,我们希望能够跟踪有多少人赢得了一个给定的奖项,因为我们想统计和计算有多少人已经赢得了一个特定的奖项。
这张桌子的样子是这样的:
在一个特定的专栏里很容易得到某个奖项的数目。但是,我在尝试跨多个列合并数据时遇到问题。
最佳答案
如果您不能规范化您的表,那么一堆union all
可以做到这一点:
SELECT prize, COUNT(*)
FROM (SELECT station_1_prize AS prize FROM mytable
UNION ALL
SELECT station_2_prize AS prize FROM mytable
UNION ALL
-- Etc...
) t
GROUP BY prize