我在以下结构中有一个包含行/数据的表
-----------
| SURVEY_ID |
------------
| 1 |
| 2 |
| 2 |
| 3 |
| 4 |
-----------
我想在同一查询中获取不同的ID和最大ID。我试过了
select distinct(survey_id) as survey_id , max(survey_id) as current
from survey_main
group by survey_id
这似乎没有返回正确的结果。我错过了什么?
编辑:必填结果
---------------------- | Distinct| Max | ---------------------- | 1 | 4 | | 2 | 4 | | 3 | 4 | | 4 | 4 | ----------------------
答案 0 :(得分:3)
我认为 Itay Moav-Malimovka 的解决方案是完美的,但是如果你真的想要有两个列你可以使用....
select distinct(survey_id) as identifier,
(select max(survey_id) from survey) as "current"
from survey_main;
干杯!
答案 1 :(得分:2)
SELECT DISTINCT *
FROM T
ORDER BY SURVEY_ID DESC
第一个结果是MAX,整个数据集是不同的
答案 2 :(得分:1)
如果您在所有survey_ids的计数和一个查询中的最大值之后,请尝试:
select count(distinct survey_id) as number_of_survey_ids
, max(survey_id) as current
from survey_main
如果您想将最大值添加到每行和,您的数据库支持窗口函数,请尝试以下操作:
select survey_id
, max(survey_id) over () as current
from survey_main