sql - 如何编写 SQL 代码将 a 中的表聚合到 b
问题描述
表 a 的结构如下
EMP_ID DATE_OF_PURCHASE ITEM_PURCHASED
------------------------------------------
1 01-JAN-19 BAG
2 01-JAN-19 UMBRELLA
1 03-JAN-19 UMBRELLA
3 01-JAN-19 PERFUME
1 04-JAN-19 PERFUME
我想把它聚合到表 b 中,看起来像
EMP_ID BAG UMBRELLA PERFUME
------------------------------------
1 YES YES YES
2 NO YES NO
3 NO NO YES
解决方案
尝试这个:
select emp_id,
case when BAG = 1 then 'YES' else 'NO' end as BAG,
case when UMBRELLA = 1 then 'YES' else 'NO' end as UMBRELLA,
case when PERFUME = 1 then 'YES' else 'NO' end as PERFUME
FROM
(select emp_id,
max(case when item_purchased = 'BAG' then 1 else 0 end) as BAG,
max(case when item_purchased = 'UMBRELLA' then 1 else 0 end) as UMBRELLA,
max(case when item_purchased = 'PERFUME' then 1 else 0 end) as PERFUME
from t
group by emp_id);
干杯!!
推荐阅读
- android - onVerificationCompleted 不起作用和 firebase
- javascript - Using https with Axios request in Nestjs
- c# - 如何抓取一些与图像分组的文本
- javascript - 正在获取数组和对象,然后将其重置为未定义。使用反应/JavaScript/Json
- r - How to use R Shiny reactive server objects in UI input widgets
- cocoa - 自动布局中是否存在隐藏约束
- javascript - (JS) Markdown issue in flask
- angular - Angular variable shared to various services and components
- python - My code returns one correct review and NULL instead of the other reviews
- react-native - Network call from native module instead from Javascript/React Native