【发布时间】:2022-01-19 05:52:07
【问题描述】:
我为表创建了按 ID 分区的行号。我想为每个 ID 选择 MAX 日期,但有些 MAX 日期是相同的,我也想选择它们。我怎样才能实现这个选择?
原表:
| ROW_NUM | EMP_ID | EMP_ID2 | ID | DATE |
|---|---|---|---|---|
| 1 | 568 | 444 | 4220 | 11-25-2020 |
| 2 | 568 | 501 | 4220 | 11-25-2020 |
| 3 | 569 | 443 | 4220 | 11-01-2020 |
| 4 | 510 | 501 | 4220 | 11-12-2020 |
| 1 | 550 | 411 | 4221 | 12-25-2020 |
| 2 | 568 | 520 | 4221 | 12-25-2020 |
| 3 | 410 | 415 | 4221 | 12-25-2020 |
| 4 | 510 | 591 | 4221 | 11-12-2020 |
| 1 | 954 | 345 | 4225 | 09-25-2020 |
| 2 | 568 | 520 | 4225 | 09-25-2020 |
| 3 | 400 | 789 | 4225 | 09-25-2020 |
| 4 | 510 | 554 | 4225 | 09-25-2020 |
| 5 | 210 | 801 | 4225 | 05-12-2020 |
选择后的表格:
| ROW_NUM | EMP_ID | EMP_ID2 | ID | DATE |
|---|---|---|---|---|
| 1 | 568 | 444 | 4220 | 11-25-2020 |
| 2 | 568 | 501 | 4220 | 11-25-2020 |
| 1 | 550 | 411 | 4221 | 12-25-2020 |
| 2 | 568 | 520 | 4221 | 12-25-2020 |
| 3 | 410 | 415 | 4221 | 12-25-2020 |
| 1 | 954 | 345 | 4225 | 09-25-2020 |
| 2 | 568 | 520 | 4225 | 09-25-2020 |
| 3 | 400 | 789 | 4225 | 09-25-2020 |
| 4 | 510 | 554 | 4225 | 09-25-2020 |
谢谢。
【问题讨论】:
-
根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
-
我试过这样“ROWNEMBER OVER PARTITION”:SELECT ROW_NUMBER() OVER (PARTITION BY ID ORDER BY DATE) ROW_NUM , MYTABLE.* FROM MYTABLE
-
edit 你对你的问题的尝试。
-
使用
DENSE_RANK()而不是ROW_NUMBER() -
天啊,对不起。我会接受答案。我是这个网站的新手。感谢您的提醒。
标签: sql sql-server tsql