首页 > 解决方案 > 按 sql / hiveql 中的列中的值集分组

问题描述

我有一张包含旅行次数和星期几的表格(星期一,星期二,星期三......)我想按“周末”和“工作日”汇总旅行次数。有没有办法可以将周日和周六分组到周末,其余的在工作日?

标签: hiveql

解决方案


您可以使用 aCASE ... END将星期六和星期日映射到另一个值,例如 Weekend,否则使用工作日。

...
GROUP BY CASE
           WHEN weekday IN ('Saturday',
                            'Sunday') THEN
             'Weekend'
           ELSE
             weekday
         END

weekday作为存储工作日的列。)

编辑:

或者,如果您希望将星期一到星期五作为工作日,而不是按他们的个人姓名(我不知道如何第一眼就理解您的帖子。):

...
GROUP BY CASE
           WHEN weekday IN ('Saturday',
                            'Sunday') THEN
             'Weekend'
           ELSE
             'Weekday'
         END

推荐阅读