我有一个具有以下结构的表:
不幸的是,它sale_date被存储为 INT,我不得不在季度(202001 年将是 Q1)找到一种方法来转换它。转换效果很好,但我还需要包含一些基于此转换的计算列。基本上,我需要计算第一季度每种产品的总价格,以及每个卖家在当年记录的“产品 x”和“产品 y”占总价格的百分比。我知道我可以使用 group by 轻松获得这些,但是我将日期(sale_date)从 INT 转换为季度的方式会影响结果。
SELECT
seller,
product_name,
LEFT([sale_date],4) Year,
'Q'+ CAST((CAST(RIGHT(sale_date,2) AS INT)-1 )/3 +1 AS varchar) Quarter,
(price),
price * 100.0 / sum(price) over () as percentage_total,
SUM (price) as total_sales
FROM table1
GROUP BY
LEFT(sale_date,4),
'Q'+ CAST((CAST(RIGHT(sale_date,2) AS INT) -1 )/3 +1 AS varchar),
seller,
product_name,
price
