【发布时间】:2019-06-04 06:17:38
【问题描述】:
我使用三个选择查询来显示来自同一视图的三个数据,但使用不同的时间线来显示数据。 所有三个选择查询的唯一区别只是时间线或日期。 那么谁能告诉我如何在不使用联合的情况下将三个同时具有三个不同时间线的选择查询的结果组合成一个选择查询。
select count(*) count from data where status in ('ACCEPTED','REJECTED','CANCELLED')
and status_date >= '01-NOV-18' and status_date <= '31-JAN-19'
UNION
select count(*) count from data where status in ('ACCEPTED','REJECTED','CANCELLED')
and status_date >= '01-FEB-19' and status_date <= '30-APR-19'
UNION
select count(*) count from data where status in ('ACCEPTED','REJECTED','CANCELLED')
and status_date >= '01-MAY-19' and status_date <= '31-JUL-19' order by count desc;
预期结果: 数数 100(第一条时间线) 200(第二个时间线) 300(第三条时间线)
【问题讨论】:
-
你的 dbms 是什么?
-
如果查询超时,那么也许看看为什么会这样?执行计划是什么样的?
-
它使用普通的 sql 查询
-
留出超时部分,因为它与我的前端有关,所以只关注如何将这三个选择查询写入一个选择查询。
-
UNION ALL 在这里会更好。考虑两个计数相同的情况。
标签: sql