psql分别按年月天小时分钟秒汇总数据

# 按年汇总
select 
    to_char(f_business_time, 'YYYY') as t, 
    count(*) as total_count,
    sum(f_trans_amount) as total_amount
from table_name
where f_business_time between start_time and end_time
group by t;

# 按月汇总
select 
    to_char(f_business_time, 'YYYY-MM') as t, 
    count(*) as total_count,
    sum(f_trans_amount) as total_amount
from table_name
where f_business_time between start_time and end_time
group by t;

# 按天汇总 方式一
select 
    to_char(f_business_time, 'YYYY-MM-DD') as t, 
    count(*) as total_count,
    sum(f_trans_amount) as total_amount
from table_name
where f_business_time between start_time and end_time
group by t;

# 按天汇总 方式二
SELECT
F_business_time::date,
COUNT(*) AS count,
SUM(f_trans_amount) AS total_amount
FROM table_name
WHERE F_business_time >= '2020-01-01 00:00:00'
AND F_business_time <= '2020-03-01 23:59:59'
GROUP BY F_business_time::date
order by 1;

# 按小时汇总
select 
    to_char(f_business_time, 'YYYY-MM-DD HH24') as t, 
    count(*) as total_count,
    sum(f_trans_amount) as total_amount
from table_name
where f_business_time between start_time and end_time
group by t;

# 按分钟汇总
select 
    to_char(f_business_time, 'YYYY-MM-DD HH24:MI') as t, 
    count(*) as total_count,
    sum(f_trans_amount) as total_amount
from table_name
where f_business_time between start_time and end_time
group by t;

# 按秒汇总
select 
    to_char(f_business_time, 'YYYY-MM-DD HH24:MI:SS') as t, 
    count(*) as total_count,
    sum(f_trans_amount) as total_amount
from table_name
where f_business_time between start_time and end_time
group by t;
发布了31 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/sosemseo/article/details/104948103