查询比较两年内的产品销售情况

时间:2012-03-18 05:27:57

标签: sql

我是sql的新手。请你帮我解决这个问题

表名:sales

product_id   sales    year
1            2000    2007
2            3000    2007
1            4000    2008

我想比较2007年和2008年我的产品销售额与产品ID = 1,并在查询中得到结果 所以,输出应该像

 product_id    sales in 2007  sales in 2008   
1                  2000           3000

3 个答案:

答案 0 :(得分:2)

您希望的查询结果类型最好通过客户端显示时操作完成。您可以通过以下方式轻松获取数据:

SELECT year, SUM(sales)
FROM sales
WHERE product_id = 1
GROUP BY year

答案 1 :(得分:0)

虽然我完全同意@MarcB,但如果您仍然希望以自己的方式执行此操作,则应运行此查询:

select product_id,
  sum(if(year = 2007, sales, 0)) `sales in 2007`,
  sum(if(year = 2008, sales, 0)) `sales in 2008`
from products
where product_id = 1
group by product_id

注意sales in 2008不是您在示例中显示的3000,而是4000

答案 2 :(得分:0)

SELECT PRODUCT_ID,YEAR,SALES,
LEAD(SALES,1) OVER (PARTITION BY YEAR ORDER BY SALES) AS FOLLOWING_YEAR_SALES
FROM TABLE_NAME;

您可以使用上面的查询来获取新的列,说明下一年的销售额。因为两年销售额之间的差异很容易计算。