sql - 如果每个用户在本年度添加了新雇主,则编写查询以向每个用户添加标志
问题描述
employers table
column type
user_id integer
year string
employer_ein string
我们得到一个名为employees 的表,它由user_id、year 和employees EIN 标签组成。用户可以拥有由不同 EIN 标签指定的多个雇主。如果每个用户在当年添加了新雇主,请编写查询以向每个用户添加标志。
Example:
employer
user_id year employer_ein
# 34323 2018 A
# 34323 2018 B
# 34323 2018 C
# 34323 2017 F
# 34323 2017 A
# 34323 2017 B
# 86323 2018 A
# 86323 2018 B
# 86323 2018 C
# 86323 2017 B
#
# 98787 2018 A
# 98787 2018 B
# 98787 2018 F
# 98787 2017 F
# 98787 2017 B
# 98787 2017 A
#
# 55559 2018 A
# 55559 2018 B
# 55559 2018 C
# Output
# user_id year new_ein_flag
# 34323 2018 1
# 86323 2018 1
# 98787 2018 0
解决方案
select user_id,max(year) as year, max(sumrow) as maxsumrow,
(case min(sumrow) = 1 and max(sumrow) = 2 when TRUE then 1 when FALSE then 0 end) as new_ein_flag
from
(SELECT user_id,count(*) as sumrow, max(year) as year,employer_ein FROM `ein` GROUP BY user_id,employer_ein) as grouptable
where year = (select max(year) as maxyear from ein)
group by user_id
having max(sumrow)=2
我尝试过这个。是截图;
推荐阅读
- rest - 如何获取通用地图作为来自 restTemplate 交换方法的响应?
- ignite-ui - Ignite ui,在哪里可以找到有关最新版本的信息
- reactjs - 如何在反应中初始化动作创建者中的firebase实例?
- facebook - facebook粉丝页面无法爬取
- javascript - 首先会发生什么:setTimeout 0 或 await Promise.resolve?
- postgresql - 每个事务的计划程序方法配置
- jenkins - Jenkins Pipeline 中基于文件的条件步骤(如 Make)
- python - 如何通过在opencv python中单击鼠标按钮在播放视频的顶部绘制形状
- java - 如何修复“失败:构建失败并出现异常。- 无法从 '11.0.1' 确定 java 版本”
- python - ImportError:无法从“nltk.twitter.util”导入名称“json2csv”