有一个下表:
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
这是一个插图。实际上,我在计算其他列时有更复杂的逻辑,并且需要重用这些计算的列来计算其他列,并且只需在每个需要它的值的地方复制整个代码看起来很可怕。
有没有办法可以在计算另一个列值时解决计算列值?