Oracle 如何使用CASE WHEN或IF进行选择不同计数?
我希望大家都好,我有一个每周盘点,我有id_txn,付款方式和付款方式,但我有一个例外,那就是当我有一个特定的场景,我希望它被添加到其他付款方式 田地Oracle 如何使用CASE WHEN或IF进行选择不同计数?,oracle,spring-boot,Oracle,Spring Boot,我希望大家都好,我有一个每周盘点,我有id_txn,付款方式和付款方式,但我有一个例外,那就是当我有一个特定的场景,我希望它被添加到其他付款方式 田地 | id_txn | way_pay | payment_meth | 123435 | gateway | transfer 433564 | on-site | cash 354641 | gateway | cash 124553 | paypal | transfer 我希望当way\u pay=gatewa
| id_txn | way_pay | payment_meth |
123435 | gateway | transfer
433564 | on-site | cash
354641 | gateway | cash
124553 | paypal | transfer
我希望当way\u pay=gateway和payment\u meth=transfer时,将计数添加到paypal/transfer中
我的问题
select distinct way_pay, payment_meth,
count(id_txn) as ttl_pays
from
pays
where
trunc(init_date) between trunc(to_date('date'))
case
when way_pay = 'gateway' and payment_meth = 'transfer'
then + pay_pal/transfer
group by way_pay, payment_meth;
当
way\u pay
为“网关”或“paypal”且paymeth
为“转账”时,下面的案例语句将返回“paypay”,否则将返回way\u pay
。group by也需要相同的语句
如果需要对不同的txn_id进行计数,则应将distinct
移动到计数函数中
select
case when way_pay in ('gateway','paypal') and payment_meth = 'transfer' then 'paypal' else way_pay end way_pay,
payment_meth,
count(distinct id_txn) as ttl_pays
from
pays
where
init_date between trunc(sysdate-7) and trunc(sysdate)
group by
case when way_pay in ('gateway','paypal') and payment_meth = 'transfer' then 'paypal' else way_pay end,
payment_meth
当
way\u pay
为“网关”或“paypal”且paymeth
为“转账”时,下面的案例语句将返回“paypay”,否则将返回way\u pay
。group by也需要相同的语句
如果需要对不同的txn_id进行计数,则应将distinct
移动到计数函数中
select
case when way_pay in ('gateway','paypal') and payment_meth = 'transfer' then 'paypal' else way_pay end way_pay,
payment_meth,
count(distinct id_txn) as ttl_pays
from
pays
where
init_date between trunc(sysdate-7) and trunc(sysdate)
group by
case when way_pay in ('gateway','paypal') and payment_meth = 'transfer' then 'paypal' else way_pay end,
payment_meth
是否需要count为0的行,否则可以使用下面的查询
是否需要count为0的行,否则可以使用下面的查询