我有一个数据库,可以跟踪人们在展会摊位上获得的奖品。大多数展位都有重叠和类似的奖品,因此参与者可以从2个展位赢得枕头(例如)。
现在,我们希望能够跟踪有多少人赢得特定奖品,因为我们想要统计并记录已经赢得某个奖项的人数。
表格如下:
在给定列中很容易获得某个奖项的计数。但是,我在尝试跨多个列合并数据时遇到了问题。
答案 0 :(得分:4)
如果你无法规范你的桌子,那么一堆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