在同一个Query中为不同的列指定不同的条件
Specify different conditions for different columns in the same Query
如何在同一个查询中为不同的列指定不同的条件?
根据我的理解,where子句中指定的条件适用于整个table。但是如果我想要一个单一的条件到单列,并且有多个列有不同的条件与相同的字段,我该如何指定条件。
我的情况,
例如,我有一个包含 10 列的 table A。
我必须在特定日期之间用条件过滤每一列。即,
日期 01/01/1990 和 01/10/1990 之间的 A1 列总和
日期 01/01/1992 和 01/10/1992 之间的 A2 列总和
和其他列类似。
所有这些我都必须在单个查询中进行。
此日期也可用于 A table
我可以使用 sum(A1) over(partition by date between to_date('01/01/1990') and to_date('01/10/1990')) 吗?
如果是的话,我无法在分区中使用 between by 。我收到错误 "missing right parenthesis"。
请解释。
提前致谢!
类似于:-
select
a.col1,
sum (case when a.YourDateColumn between to_date ('01/01/1900', 'DD/MM/YYYY') and to_date ('01/10/1990', 'DD/MM/YYYY') then a.a1 else 0 end) as a1total,
sum (case when a.YourDateColumn between to_date ('01/01/1992', 'DD/MM/YYYY') and to_date ('01/10/1992', 'DD/MM/YYYY') then a.a2 else 0 end) as a2total
from A
group by a.col1
如何在同一个查询中为不同的列指定不同的条件?
根据我的理解,where子句中指定的条件适用于整个table。但是如果我想要一个单一的条件到单列,并且有多个列有不同的条件与相同的字段,我该如何指定条件。
我的情况,
例如,我有一个包含 10 列的 table A。
我必须在特定日期之间用条件过滤每一列。即,
日期 01/01/1990 和 01/10/1990 之间的 A1 列总和
日期 01/01/1992 和 01/10/1992 之间的 A2 列总和
和其他列类似。
所有这些我都必须在单个查询中进行。
此日期也可用于 A table
我可以使用 sum(A1) over(partition by date between to_date('01/01/1990') and to_date('01/10/1990')) 吗?
如果是的话,我无法在分区中使用 between by 。我收到错误 "missing right parenthesis"。
请解释。
提前致谢!
类似于:-
select
a.col1,
sum (case when a.YourDateColumn between to_date ('01/01/1900', 'DD/MM/YYYY') and to_date ('01/10/1990', 'DD/MM/YYYY') then a.a1 else 0 end) as a1total,
sum (case when a.YourDateColumn between to_date ('01/01/1992', 'DD/MM/YYYY') and to_date ('01/10/1992', 'DD/MM/YYYY') then a.a2 else 0 end) as a2total
from A
group by a.col1