1

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

视图 1:“AAA 事件计数”

  • Col1:时间戳
  • Col2:计数

视图 2:“BBB 事件计数”

  • Col1:时间戳
  • Col2:计数

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

我想要一个查询,使这些数据看起来像这样:

  • Col1:时间戳
  • Col2:计数
  • 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 查询。

有什么建议可以解决这个问题吗?

4

2 回答 2

1

从 View1 中选择 Col1、Col2、“AAA”作为 Col3

联合所有

从 View2 中选择 Col1、Col2、“BBB”作为 Col3

联合所有

从 View3 中选择 Col1、Col2、“CCC”作为 Col3

联合所有

. . .

等等。

于 2013-04-15T23:36:52.860 回答
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
于 2013-04-17T17:40:34.343 回答