【发布时间】:2020-04-05 13:37:26
【问题描述】:
我有一张下表。
现在我需要如下输出。
现在我需要根据产品分组显示连续日期之间的产品差异。例如:在 Apple 循环中,第一行应返回默认值 3,然后下一行应返回差值。同样,代码应该适用于下一个产品三星循环。然后,应将结果传递到所需输出中显示的新列中。
我对 MySQL 完全陌生,但是,我已尽力使用连接来获得所需的输出,但我不知道从哪里开始。请指导我了解这个新概念。
以下是我尝试过的代码。
CREATE TABLE products (
id numeric,
product text,
date_value DATE,
prod_value numeric);
INSERT INTO products(id, product, date_value, prod_value)
VALUES(1, 'Apple', '2018-01-22', 3);
INSERT INTO products(id, product, date_value, prod_value)
VALUES(2, 'Apple', '2018-01-23', 6);
INSERT INTO products(id, product, date_value, prod_value)
VALUES(3, 'Apple', '2018-01-24', 7);
INSERT INTO products(id, product, date_value, prod_value)
VALUES(4, 'Samsung', '2018-01-22', 1);
INSERT INTO products(id, product, date_value, prod_value)
VALUES(5, 'Samsung', '2018-01-23', 5);
SELECT
current.prod_value,(current.prod_value - previous.prod_value) diff
FROM
products previous
JOIN
products current
ON
current.id = previous.id+1;
【问题讨论】: