使用Oracle我想编写一个显示第一年和第二年半年数据总和的查询。
如果我的数据搜索条件如2016/02~2017 / 12。
我想显示如下结果。
1. 2016年1月1日〜2016年6月30日的价格 - 上半年排
2. 2016年7月1日〜2016年12月31日的价格 - 下半年排
3.价格从2017/01/01~2017 / 06/30 - 上半年排
4.Sum of price from 2017/07/01~2017/12/31 - 下半年排
答案 0 :(得分:1)
您可以使用格式模型'Q'
来获取一年中的季度。并操纵它计算半年,如下所示。
TO_CHAR(day,'YYYY')|| (CASE WHEN(TO_CHAR(day,'Q')<=2) THEN 1 ELSE 2 END)
完整查询将类似于
SELECT TO_CHAR(day,'YYYY')|| (CASE WHEN(TO_CHAR(day,'Q')<=2) THEN 1 ELSE 2 END),
SUM( price)
from my_data
GROUP BY TO_CHAR(day,'YYYY')|| (CASE WHEN(TO_CHAR(day,'Q')<=2) THEN 1 ELSE 2 END)
ORDER BY 1
示例输出:
20161 62700
20162 4095
20171 163075
20172 36945