sparksql CASE WHEN 分组 为今年 、去年、其他
时间: 2024-05-02 15:20:59 浏览: 75
mysql case when group by 实例详解
假设有一个表格叫做sales,其中包含了销售数据和销售时间,我们想要按照今年、去年和其他年份进行分组,可以使用以下语句:
```
SELECT
CASE
WHEN YEAR(sale_date) = YEAR(CURRENT_DATE()) THEN '今年'
WHEN YEAR(sale_date) = YEAR(CURRENT_DATE()) - 1 THEN '去年'
ELSE '其他'
END AS year_type,
SUM(sales) AS total_sales
FROM
sales
GROUP BY
CASE
WHEN YEAR(sale_date) = YEAR(CURRENT_DATE()) THEN '今年'
WHEN YEAR(sale_date) = YEAR(CURRENT_DATE()) - 1 THEN '去年'
ELSE '其他'
END
```
该语句中,我们使用了CASE WHEN语句来判断销售时间的年份是否为今年、去年或其他年份,然后将其分别归为三个不同的组。在GROUP BY子句中,我们同样使用了CASE WHEN语句来对年份进行分组。最终,我们使用SUM函数来计算每个分组内的总销售额。
阅读全文