sparksql CASE WHEN 取数 今年 去年
时间: 2023-10-06 07:12:06 浏览: 62
SPARK SQL中的CASE WHEN语句可以用于根据条件对数据进行分类、分组和筛选。在这里,我们可以使用CASE WHEN语句来比较今年和去年的数据,并根据结果获取所需的数据。
例如,如果我们想要取出今年和去年的订单数量并计算它们之间的差异,我们可以使用以下代码:
SELECT
SUM(CASE WHEN year(order_date) = year(CURRENT_DATE()) THEN 1 ELSE 0 END) AS this_year_orders,
SUM(CASE WHEN year(order_date) = year(CURRENT_DATE()) - 1 THEN 1 ELSE 0 END) AS last_year_orders,
SUM(CASE WHEN year(order_date) = year(CURRENT_DATE()) THEN 1 ELSE 0 END) - SUM(CASE WHEN year(order_date) = year(CURRENT_DATE()) - 1 THEN 1 ELSE 0 END) AS order_difference
FROM orders;
在这个例子中,我们首先使用CASE WHEN语句来获取今年和去年的订单数量。然后,我们计算这两个数字之间的差异,并将结果命名为order_difference。
注意,我们使用year()函数来提取订单日期的年份,并使用CURRENT_DATE()函数来获取当前日期的年份。
最后,我们在FROM子句中指定订单表的名称(假设我们已经创建了一个名为orders的表)。
阅读全文