【发布时间】:2015-08-10 14:56:07
【问题描述】:
我正在尝试使用下面的查询来整理消费者列表基于 1)实际计数然后 2)基于 Sla_state =1 和 result =0 中的值的子计数 ..
查询..
选择consumer作为“Consumer”,class_name作为“Service”,count(consumer)作为“totalcount”,avg(responsetime)作为“AvgResponseTime(ms)”,max(responsetime)作为“Max ResponseTime(ms)”, sla_state 为“sla”,结果为“result_state”,count(1) 为“subcount”
从
DPOWER.business_transaction bt 加入 DPOWER.mmfg_business_transaction mbt on
(bt.business_trans_id = mbt.business_trans_id) 在 (bt.class_id = tc.class_id) 和 sla_state = 1 和 result=0 上加入 DPOWER.transaction_class tc
在哪里
(bt.starttime >= '20150701000000000000' and bt.endtime
上面的查询有效..但我只能得到子计数,而不是消费者的总数。下面是三个表结构。谁能弄清楚如何获得总计数。(我尝试了所有可能的方法,例如计数(*)等,但没有成功。如果我使用别名,我会得到“多部分标识符未绑定”错误。
【问题讨论】:
-
consumer in (select count(consumer) from DPOWER.business_transaction where sla_state = 1 and result=0)似乎不对。 -
@Hanno 我可以使用类似 .................... ................................消费者在(选择计数(1)作为“失败的 Txn 计数”DPOWER.business_transaction 其中sla_state = 1 并且结果=0)
-
您应该始终为您选择的所有列设置别名。我不知道哪个列来自哪个表,这使得查询很难理解。
-
感谢您的建议..但是当我尝试包含别名时..我得到“col 的多部分标识符未绑定”...
标签: sql-server count subquery aggregate identifier