【发布时间】:2018-01-28 19:02:54
【问题描述】:
有没有更好的写法?
select Date, NeName, KPINAME, SUB_TYPE1, KPI
from ggsn_kpi_2017
where date
in ('2017-08-19', '2017-08-18', '2017-08-17', '2017-08-16', '2017-08-15',
'2017-08-14', '2017-08-13')
and KPINAME in('SM_SUCC_SESS_ACT_GGSN', 'SM_FAIL_SESS_ACT_GGSN', 'SM_SUCC_SESS_ACT_P_GW', 'SM_FAIL_SESS_ACT_P_GW',
'SM_SUCC_SESS_ACT_SAE_GW', 'SM_FAIL_SESS_ACT_SAE_GW',
'SM_DOWNLINK_BYTES_M2M', 'SM_UPLINK_BYTES_M2M')
group by Date, NeName, KPINAME
union
select Date, NeName, KPINAME, SUB_TYPE1, KPI
from ggsn_kpi_2016
where date in ('2017-08-19', '2017-08-18', '2017-08-17', '2017-08-16',
'2017-08-15', '2017-08-14', '2017-08-13')
and KPINAME in('SM_SUCC_SESS_ACT_GGSN', 'SM_FAIL_SESS_ACT_GGSN', 'SM_SUCC_SESS_ACT_P_GW',
'SM_FAIL_SESS_ACT_P_GW', 'SM_SUCC_SESS_ACT_SAE_GW',
'SM_FAIL_SESS_ACT_SAE_GW', 'SM_DOWNLINK_BYTES_M2M', 'SM_UPLINK_BYTES_M2M')
group by Date, NeName, KPINAME;
【问题讨论】:
-
请编辑问题,正确格式化,添加您正在使用的数据库的标签,以及它的查询计划以及表定义,索引等。因为它没有人可以说什么关于它。
-
您需要更详细地解释您的问题是什么。这个问题作为 StackOverflow 问题无效。关于如何发布问题的指南在这里:stackoverflow.com/help/how-to-ask
-
您在
SELECT中有SUB_TYPE1, KPI,但它们不在GROUP BY中。您的查询没有意义。 -
只是猜测,您没有正确的索引。根据您提供的信息,没有太多机会提供更好的建议。
-
一些建议 - 为什么在没有聚合功能时使用 Group by。确保有适当的索引。
标签: mysql sql query-performance