oracle 同时获取每个用户的本月销量,上月销量,本年销量,上年销量
时间: 2024-03-16 20:48:03 浏览: 81
一个oracle 用户下面创建多个实例
您可以使用Oracle的SQL语句来同时获取每个用户的本月销量、上月销量、本年销量和上年销量。下面是一个示例查询语句:
```
SELECT
user_id,
SUM(CASE WHEN EXTRACT(YEAR FROM sale_date) = EXTRACT(YEAR FROM SYSDATE) AND EXTRACT(MONTH FROM sale_date) = EXTRACT(MONTH FROM SYSDATE) THEN sale_amount ELSE 0 END) AS current_month_sales,
SUM(CASE WHEN EXTRACT(YEAR FROM sale_date) = EXTRACT(YEAR FROM ADD_MONTHS(SYSDATE, -1)) AND EXTRACT(MONTH FROM sale_date) = EXTRACT(MONTH FROM ADD_MONTHS(SYSDATE, -1)) THEN sale_amount ELSE 0 END) AS last_month_sales,
SUM(CASE WHEN EXTRACT(YEAR FROM sale_date) = EXTRACT(YEAR FROM SYSDATE) THEN sale_amount ELSE 0 END) AS current_year_sales,
SUM(CASE WHEN EXTRACT(YEAR FROM sale_date) = EXTRACT(YEAR FROM ADD_MONTHS(SYSDATE, -12)) THEN sale_amount ELSE 0 END) AS last_year_sales
FROM
sales_table
GROUP BY
user_id;
```
这个查询语句使用了聚合函数SUM和CASE语句来计算各种销量。其中,EXTRACT函数用于从日期中提取年份和月份。SYSDATE是Oracle系统函数,用于获取当前日期。ADD_MONTHS函数用于在日期上加上一个指定的月数。GROUP BY子句用于按用户ID分组计算总销量。
阅读全文