sql - 如何根据另一列 PROC SQL 的条件创建新列
问题描述
我正在尝试使用 SAS 中的 sql 语句根据另一列的条件创建一组新列。但是,使用我当前的代码,只要不满足条件,它就会显示为 Null 值。但我不希望用这些空白来构造新列。有人可以帮忙吗?在实际数据集中,我将几个表连接在一起。
这是一个简化的模拟数据集:
这是使用的代码:
PROC SQL;
Create table Sales AS
SELECT
SUM (CASE WHEN Sub_Category in('Coffee')THEN Previous_Sales END)AS
Coffee_Sale,
SUM(CASE WHEN Sub_Category in('Tea')THEN Previous_Sales END)AS Tea_Sale,
SUM(CASE WHEN Sub_Category in('Soda')THEN Previous_Sales END)AS Soda_Sale
FROM data
GROUP BY Sub_Category;
我正在尝试采用这种格式:
此代码正在返回:
解决方案
您只需group by
要从现有代码中删除。
Create table Sales AS
SELECT SUM (CASE WHEN Sub_Category in('Coffee')THEN Previous_Sales END)AS Coffee_Sale,
SUM(CASE WHEN Sub_Category in('Tea')THEN Previous_Sales END)AS Tea_Sale,
SUM(CASE WHEN Sub_Category in('Soda')THEN Previous_Sales END)AS Soda_Sale
FROM data -- no group by
您可以为啤酒和水添加相同SUM
的case
表达式。
推荐阅读
- python - 将按钮放置在正确的位置 Tkinter
- android - 连接两个用户 ID Firebase 数据库
- office365 - 通过 Office365 登录从后端定位 Yammer API
- java - 下载位于远程存储服务中的文件的有效方法
- python - 重采样后获取pandas第n个条目(在'DatetimeIndexResampler'对象上)
- java - Apache Ignite:使用单例服务停止服务器时“无法重新分配服务”
- php - php中带有大数字的numberformat错误
- python - 从 pytorch 到 onnx 到 tensorflow 图定义到 tflite 的转换 - TOCO 失败 - 类型检查失败
- node.js - 节点 API - 来自第二个循环的 res.send()
- c++ - 如何在 C++ 中正确访问映射内存而没有未定义的行为