次の表があります。
CREATE TABLE `foo`(
`year` INT NOT NULL,
`month` INT NOT NULL,
`day` INT NOT NULL,
`hour` INT NOT NULL,
`minute` INT NOT NULL,
`value` INT NOT NULL,
PRIMARY KEY(`year`, `month`, `day`, `hour`, `minute`)
);
レコードごとに2つの列を追加するクエリを作成したいと思います。date
標準の単一列のデータ表現用でweekday
、曜日番号を示します。
私が試してみました
SELECT
`year`, `month`, `day`, `hour`, `minute`, `value`,
substr('000' || year, -4) || '-' || substr('0' || month, -2) || '-' || substr('0' || day, -2) AS `date`,
strftime('%w', `date`) AS `weekday`
FROM
`foo`;
しかし、これは言います
Error: no such column: date
これはイラストです。実際には、追加の列を計算するロジックがはるかに複雑であり、これらの計算された列を再利用して他の列を計算し、コード全体をあらゆる場所にコピーするだけで、その値が非常に怖いように見える必要があります。
別の列の値を計算する際に、計算された列の値に対処する方法はありますか?