SQL 查询:是不是可以在单个查询中投影四个结果?

Posted

技术标签:

【中文标题】SQL 查询:是不是可以在单个查询中投影四个结果?【英文标题】:SQL Query : Is it possible to project a four results in a single query?SQL 查询:是否可以在单个查询中投影四个结果? 【发布时间】:2019-11-08 18:11:46 【问题描述】:

目前,我正在执行四个查询来预测基于过去 24 小时、上周、上个月和上个月的结果。是否可以在单个查询中投影四个结果?

【问题讨论】:

Oracle 还是 Postgres?这是两种不同的 DBMS 产品 到目前为止你尝试了什么? 我在我的应用程序中尝试了 4 个查询,但都无效。 【参考方案1】:

如果您需要与当前日期相比最近一周、最近一个月、最近一年,那么您可以使用 oracle 中的条件聚合来完成,如下所示:

Select sum(case when trunc(date_col) = trunc(sysdate-1) then 1 end) as last_one_day,
sum(case when trunc(date_col) between trunc(sysdate-7) and trunc(sysdate-1) then 1 end) as last_one_week,
sum(case when trunc(date_col) between trunc(add_months(sysdate,-1)) and trunc(sysdate-1) then 1 end) as last_one_month,
sum(case when trunc(date_col) between trunc(add_months(sysdate,-12)) and trunc(sysdate-1) then 1 end) as last_one_year
From your_table
Where type = ...

干杯!!

【讨论】:

以上是关于SQL 查询:是不是可以在单个查询中投影四个结果?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 4 个 sql 查询组合成一个性能良好的查询?

将多个 SQL 查询组合成单个结果

组合查询

SQL查询结果加入排序值的问题

如何使用单个 SQL 聚合函数查询为同一个聚合函数获取多个结果?

单个查询可以在 Spring Boot 中给出条件结果的结果吗?