2013-03-06 53 views
-4

我创建了一个表视图创建使用联合视图作为创建的所有查询

Create view v1 as 
    select severity,avg(days),count(bugid) from tabble1 where bugid in (105,109) group by severity 
union all 
    select severity,avg(days),count(bugid) from tabble1 where bugid in (105,109) group by severity 
union all 
    select severity,avg(days),count(bugid) from tabble1 where bugid in (105,109) group by severity 

查看。但是,当我看到在视图(select * from v1)的数据是从不同的时,我只运行查询:

select severity,avg(days),count(bugid) from tabble1 where bugid in (105,109)group by severity 
union all 
select severity,avg(days),count(bugid) from tabble1 where bugid in (105,109)group by severity 
union all 
select severity,avg(days),count(bugid) from tabble1 where bugid in (105,109)group by severity 

可能是什么原因,如何解决这个问题? 谢谢。

+1

结果如何不同? – 2013-03-06 21:20:02

+1

你真的在做3次同样的查询的联合吗? – 2013-03-06 21:21:21

+1

您确定完整的数据集是不同的(与订单无关)吗? – Trinimon 2013-03-06 21:21:46

回答

2

,我可以看到最有可能的可能性:

  • 您的看法和您的查询实际上并不完全一样。可能 其中之一有一个错字。
  • 您正在运行从视图中选择一个服务器和另一个 特定查询上(如果我有一块钱eveytime我是 错误的服务器,当我手动运行一个查询...)
  • 的数据在运行select和 视图和其他select之间的时间内发生了变化。
+1

我会拿1000美元亚历克斯! – 2013-03-07 00:28:07

+0

谢谢你的回答。其中没有任何错别字。两者都在同一台服务器上运行。该表中的数据不会每5分钟或频繁更改一次。所以可能还有其他一些原因。 – OceanView 2013-03-07 01:55:08