我有一个表,其中包含旅行次数和星期几(星期一,星期二,星期三.....)。我想按“周末”和“工作日”汇总旅行次数。有什么方法可以将周日和周六分组为周末,将其余部分归为工作日?
答案 0 :(得分:2)
您可以使用CASE ... END
将星期六和星期日映射到另一个值,例如周末,否则使用工作日。
...
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
答案 1 :(得分:1)
或者,从@stickybit的答案扩展,如果有可用的日期列,则可以使用TO_CHAR
获取星期几:
.
.
.
GROUP BY CASE
WHEN TRIM(TO_CHAR(YOUR_DATE_FIELD, 'DAY')) IN ('SATURDAY', 'SUNDAY') THEN
'WEEKEND'
ELSE
'WEEKDAY'
END;