跨多个相似视图的MySQL查询

时间:2013-04-15 20:55:41

标签: mysql sql reporting

我正在尝试编写一个复合许多MySQL视图的查询。我正在使用的MySQL版本是亚马逊AWS RDS服务提供的最新版本。这些视图如下:

查看1:“AAA事件计数”

  • Col1:时间戳
  • Col2:Count

观点2:“BBB事件的数量”

  • Col1:时间戳
  • Col2:Count

我有大约100个这样的观点。

我希望有一个查询可以将这些数据整形为:

  • Col1:时间戳
  • Col2:Count
  • Col3:事件类型

这意味着数据看起来像:

2013-01-01T00:00:00Z    10     BBB
2013-01-01T00:00:00Z    10     AAA
2013-04-10T00:00:00Z    26     AAA
2013-04-10T00:05:00Z    28     AAA

时间戳不是唯一的,但时间+事件类型的组合是唯一的。

我尝试过各种各样的方法,但没有什么能给我带来我想要的东西。性能不是问题,因为这些是摘要报告,而不是OLTP查询。

有什么好方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

SELECT Col1,Col2,“AAA”AS Col3 FROM View1

UNION ALL

SELECT Col1,Col2,“BBB”AS Col3 FROM View2

UNION ALL

SELECT Col1,Col2,“CCC”AS Col3 FROM View3

UNION ALL

。 。

等等。

答案 1 :(得分:0)

在上述人员的帮助下,最终结果如下:

Select * from 
(
  (SELECT PointInTime, (Col1+Col2+Col3) as Failures, "ApiName1" FROM Table1)
  union all 
  (SELECT PointInTime, (Col1+Col2+Col3) as Failures, "ApiName2" FROM Table2)
  order by PointInTime
) as X;

使用子查询可以让我根据需要调整最终的列名。

这会产生如下结果:

PointInTime    FailedBuckets     API
2013-01-01            0          ApiName1
2013-01-01            1          ApiName2
2013-01-02            0          ApiName1
2013-01-02            1          ApiName2