0

我需要在分区表上运行查询,并且我想要按分区的结果,如下所示:

partition     result     count
----------- ----------   ------
    p1        apples      2
    p1        oranges     3
    p2        apples      10
    p2        oranges     15

从官方的 MySQL 在线文档来看,如果我们有 5.6 或更高版本,我们可以使用PARTITION子句来指定从哪里获取数据,但我们目前停留在 5.1.63。无论表的分区方案如何,是否有一种简单的方法可以做到这一点?

4

1 回答 1

2

我不相信你可以在 MySQL 5.1 中。

不过,您可以解决它 - 无论分区定义如何,您都可以将其作为条件添加到您的计数中。

例如,如果它是 ID 列上的范围分区,并且 p1 的 ID < 10000,p2 ID < 20000 那么

SELECT result, partition, count(ID)
FROM
(
    SELECT result, ID,
      case when ID < 10000 then p1
           when ID < 20000 then p2
      .....
      end as partition

    FROM
      table
) s1
GROUP BY partition, result
于 2013-02-20T00:46:06.367 回答