1 个回答
SELECT t1.a, t1.b, count(t1.b) FROM table1 AS t1
WHERE EXISTS(
SELECT 1 FROM 2table AS t2
WHERE t1.a = t2.a
AND t2.RTU代码=0
)
AND t1.b IN (0,2)
AND t1.SOC between 1465056000 AND 1465228800
GROUP BY a, b
ORDER BY NULL;#假如不需要排序的话,可以显式关闭排序

然后table1SOC字段要建索引。

最好还是用EXPLAIN分析一下SQL,看看哪里还有优化的地方(但凡涉及到GROUP BY的SQL性能都不太好)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进