我正在使用snowflake从数据中获取一些信息.我有一个表,其中同一个员工(PRS\U ID)可以包含在多行中,我想 for each 员工(PRS\U ID)取最早的日期(BGN\U日期).接下来,我想看看我每个月有多少员工.
理想情况下,如果我可以有YYYY-MM格式(YYYYMM也可以).我的工作内容如下:
SELECT PRS_ID, MIN(BGN_DATE), MONTH(BGN_DATE)
FROM myTable
WHERE EMP_STS = 'T'
GROUP BY PRS_ID, MONTH(BGN_DATE)
但是,这将显示每个员工的数据(PRS_ID),这太精细了(如上所述).但当我从分组中删除"PRS\u ID"时,我得到以下错误:
SQL compilation error: error line 1 at position 7 'myTable.PRS_ID' in select clause is neither an aggregate nor in the group by clause.
有人知道怎么修吗?
非常感谢.
Sample Data:
PRS_ID | EMP_STS | BGN_DATE |
---|---|---|
homsimps | T | 2022-01-30 |
homsimps | T | 2022-02-28 |
homsimps | T | 2022-03-30 |
bartsimps | T | 2022-01-30 |
bartsimps | T | 2022-02-28 |
bartsimps | T | 2022-03-31 |
lisasimps | T | 2022-04-30 |
lisasimps | T | 2022-05-31 |
lisasimps | T | 2022-06-30 |
lisasimps | T | 2022-07-30 |
margesimps | T | 2022-02-28 |
margesimps | T | 2022-03-30 |
Expected Outcome:
Period | Count |
---|---|
2022-01 | 2 |
2022-02 | 1 |
2022-03 | 0 |
2022-04 | 1 |