选择子查询计数,大小写,总和

问题描述 投票:-1回答:1

您能帮我吗,我有问题,这是我的代码。

SELECT tglkadaluarsa - now() AS date_ratio, CASE
WHEN tglkadaluarsa - now() < '0 days' THEN 'Has Expired'
WHEN tglkadaluarsa - now() <= '180 days' THEN 'Expire <= 6 Month'
WHEN tglkadaluarsa - now() <= '365 days' THEN 'Expire <= 1 Year'
WHEN tglkadaluarsa - now() <= '725 days' THEN 'Expire <= 2 Year'
WHEN tglkadaluarsa - now() > '725 days' THEN 'Expire More 2 Year'
WHEN tglkadaluarsa is null THEN 'Expire Not Updated'
END AS range_expire, COUNT(*) FROM sdm.ms_unit
GROUP BY date_ratio, range_expire ORDER BY date_ratio

我想获取range_expire并进行计数,但是基于范围的计数数据总和到期,然后我使用它,但是我不知道要基于范围到期的总和,我使用此代码

SELECT a.range_expire FROM (SELECT tglkadaluarsa - now() AS date_ratio
WHEN tglkadaluarsa - now() < '0 days' THEN 'Has Expire'
WHEN tglkadaluarsa - now() <= '180 days' THEN 'Expire <= 6 Month'
WHEN tglkadaluarsa - now() <= '365 days' THEN 'Expire <= 1 Year'
WHEN tglkadaluarsa - now() <= '725 days' THEN 'Expire <= 2 Year'
WHEN tglkadaluarsa - now() > '725 days' THEN 'Expire More 2 Year'
WHEN tglkadaluarsa is null THEN 'Expire Not Updated'
END AS range_expire, COUNT(*) FROM sdm.ms_unit GROUP BY date_ratio, range_expire
ORDER BY range_expire) a GROUP BY range_expire ORDER BY range_expire
postgresql
1个回答
0
投票
SELECT range_expire,sum_range_expire FROM ( SELECT tglkadaluarsa - now() AS date_ratio, CASE WHEN tglkadaluarsa - now() < '0 days' THEN 'Has Expire' WHEN tglkadaluarsa - now() <= '180 days' THEN 'Expire <= 6 Month' WHEN tglkadaluarsa - now() <= '365 days' THEN 'Expire <= 1 Year' WHEN tglkadaluarsa - now() <= '725 days' THEN 'Expire <= 2 Year' WHEN tglkadaluarsa - now() > '725 days' THEN 'Expire More 2 Year' WHEN tglkadaluarsa is null THEN 'Expire Not Updated' END AS range_expire, SUM(CASE WHEN tglkadaluarsa - now() < '0 days' THEN 1 WHEN tglkadaluarsa - now() <= '180 days' THEN 1 WHEN tglkadaluarsa - now() <= '365 days' THEN 1 WHEN tglkadaluarsa - now() <= '725 days' THEN 1 WHEN tglkadaluarsa - now() > '725 days' THEN 1 WHEN tglkadaluarsa is null THEN 1 ELSE 0 END) AS sum_range_expire, SUM(CASE WHEN tglkadaluarsa - now() < '0 days' THEN 1 ELSE 0 END) AS 'Has_Expire' SUM(CASE WHEN tglkadaluarsa - now() <= '180 days' THEN 1 ELSE 0 END) AS Expire_Before_6_Month SUM(CASE WHEN tglkadaluarsa - now() <= '365 days' THEN 1 ELSE 0 END) AS Expire_Before_1_Month SUM(CASE WHEN tglkadaluarsa - now() <= '725 days' THEN 1 ELSE 0 END) AS Expire_Before_2_Month SUM(CASE WHEN tglkadaluarsa - now() > '725 days' THEN 1 ELSE 0 END) AS Expire_More_2_Month SUM(CASE WHEN tglkadaluarsa is null THEN 1 ELSE 0 END) AS Expire_Not_Updated FROM sdm.ms_unit GROUP BY date_ratio, range_expire ORDER BY range_expire ) AS a GROUP BY range_expire ORDER BY range_expire
© www.soinside.com 2019 - 2024. All rights reserved.