我有一个数据库,可以追踪人们在一个集市的摊位上赢得的奖品。大多数摊位都有重叠和类似的奖品,因此参与者可以从两个摊位中赢得一个枕头(例如)。
现在,我们希望能够跟踪有多少人赢得了一个给定的奖项,因为我们想统计和计算有多少人已经赢得了一个特定的奖项。
这张桌子的样子是这样的:
mysql - MySQL-跨列选择不同的条目?-LMLPHP
在一个特定的专栏里很容易得到某个奖项的数目。但是,我在尝试跨多个列合并数据时遇到问题。

最佳答案

如果您不能规范化您的表,那么一堆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

09-25 23:26