use*_*955 4 sql oracle group-by aggregate-functions
我想知道是否可以执行分组依据,并为每个聚合函数选择不同的行子集。例子:
select order, count(*), sum(*), avg(*)
from table_orders
group by order
Run Code Online (Sandbox Code Playgroud)
我想使用不同的条件限制每个聚合函数使用的行,例如
count(*) where order_price > 100
sum(*) where order_id < 200
avg(*) where other_condition
Run Code Online (Sandbox Code Playgroud)
谢谢你们!
您可以尝试下面 - 使用case when表达式
select order, count(case when order_price > 100 then order end),
sum(case when order_id < 200 then order_price end),
avg(case when other condition then order_price end)
from table_orders
group by order
Run Code Online (Sandbox Code Playgroud)