このテーブルを作成する必要があります (実際にはドーナツ用ではありません)。
私は基本的に、特定の時間枠内で製品を販売する時間を出力したいと考えています。
時間枠はテーブルで定義されており、クエリを壊さずに再構成 (削除して再作成) できる必要があります。
つまり、監視対象の time_frames は、設計上、頻繁に変更されます。今日は 4 つの時間枠 (各 6h) が定義されている可能性があり、明日は 1 つだけ (24h) を作成し、翌日には 12 行 (各 2 回) が定義される可能性があります。time_frames の長さも異なる場合があります。列は同じままです。
CREATE TABLE time_frame
(
id SERIAL NOT NULL
,start_time time
,end_time time
,PRIMARY KEY(id)
);
CREATE TABLE donut_sales
(
saleid SERIAL NOT NULL
,donutid INT
,donutname TEXT
,stocked timestamp
,sold timestamp
,PRIMARY KEY (saleid)
);
-- SELECT * FROM FANCY_PIVOT_TABLE_I_DONT_UNDERSTAND
-- +---------+-------------+----------------+----------------+----------------+
-- | donutid | donutname | time_frame_1 | time_frame_2 | time_frame_3 |
-- +---------+-------------+----------------+----------------+----------------+
-- | 1 | sprinkles | 00:17:66 | 00:17:66 | 00:17:66 |
-- | 2 | jelly | 00:17:66 | 00:17:66 | 00:17:66 |
-- | 3 | custard | 00:17:66 | 00:17:66 | 00:17:66 |
-- +---------+-------------+----------------+----------------+----------------+