SQLITE:计算同一表中多行的价格变化

时间:2014-06-01 04:43:16

标签: sql sqlite

我有一个具有以下架构的数据库,我需要能够在任何给定商店的价格变化时计算差异并将其包含在查询结果中。是否可以使用以下查询?:

SELECT * from prices
WHERE rowid in (
    SELECT p.rowid from prices p 
    LEFT JOIN prices p1 
    ON (p1.rowid = (select max(rowid) from prices pp  where pp.rowid < p.rowid)) 
    WHERE p.price > p1.price + .01 and p.address = p1.address  
) 

我想打印一份类似于此的报告:

商店-------- -------国家--------城-------地址-------价格差异

ACME ........俄亥俄州........阿克伦........ 123榆树....... 10.25 ...... + 0.25 ACME ........俄亥俄州........阿克伦........ 123赫斯特..... 9.25 ....... + 1.25 ACME ........俄亥俄........阿克伦........ 125榆树....... 5.00 .......- 0.60

以下是我正在使用的数据示例: http://www.sqlfiddle.com/#!7/d020f/37/0

1 个答案:

答案 0 :(得分:0)

如果要显示价格与之前的价格之间的变化,您可以使用插入查询来执行此操作。下面我设定价格为3.64。在我按行排序的查询中,但最好按日期排序

 INSERT INTO PRICES    
 Select  url, state, city, location, 3.64 as price, company, address, '5:45:11 PM 5/30/2014 est.', 3.64 -price as change FROM PRICES
 WHERE address = '1670 US-31 N & I-65'
 ORDER BY rowid DESC LIMIT 0,1