我正在创建一个程序,除了程序之外,它还提供统计信息。我想要添加的一件事是每天的交易数量,然后可能有一个折线图,显示交易如何按天(一个月内),然后按月,然后按年变化。我真的无法弄清楚如何将其转换为数据库,程序可以将数据拉入图表
会有什么样的东西,或者有什么我想念的东西:?
日表; (A.I)id,daynumber,dayofweek,numoftrans外键:monthnumber,yearnumber
月份表
(A.I)id,monthnumber,nameofmonth,numoftrans
年表
(A.I)id,yearnumber,numberoftrans
答案 0 :(得分:0)
所有需要是一个存储日期和交易次数的表。
create table transactions_per_day (
transaction_date date primary key,
num_transactions integer not null check (num_transactions >= 0)
);
每月和每年的事务数可以在具有聚合函数(SUM())和WHERE子句的查询中完成。每月总计。 。
select
extract(year from transaction_date) tr_year,
extract(month from transaction_date) tr_month,
sum(num_transactions) num_tr
from transactions_per_day
where transaction_date between '2013-01-01' and '2013-12-31'
group by tr_year, tr_month
order by tr_year, tr_month;
为每月总计和年度总计创建视图通常是有意义的。
create view transactions_per_month as
select
extract(year from transaction_date) tr_year,
extract(month from transaction_date) tr_month,
sum(num_transactions) num_tr
from transactions_per_day
where transaction_date between '2013-01-01' and '2013-12-31'
group by tr_year, tr_month
order by tr_year, tr_month;