1

私は、プログラムの機能に加えて、統計情報も提供するプログラムを作成しています。追加したいのは、1日あたりのトランザクション数で、トランザクションが日ごと(1か月以内)、月ごと、年ごとにどのように変化したかを示す折れ線グラフがあります。プログラムがそのデータをプルしてチャートに入れることができるデータベースにそれを変換する方法を本当に理解することはできません

それは次のようなものでしょうか、それとも私が見逃しているものがありますか?

デイテーブル; (AI)id、daynumber、dayofweek、numoftrans外部キー:monthnumber、yearnumber

月表

(AI)id、monthnumber、nameofmonth、numoftrans

年表

(AI)id、yearnumber、numberoftrans

4

1 に答える 1

0

必要のは、日付とトランザクション数を格納するテーブルだけです。

create table transactions_per_day (
  transaction_date date primary key,
  num_transactions integer not null check (num_transactions >= 0)
);

1か月および1年あたりのトランザクション数は、集計関数(SUM())とWHERE句を使用したクエリで実行できます。1か月あたりの合計。。。

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;
于 2013-02-07T15:09:58.747 に答える