1

我有一个包含以下结构的行/数据的表

-----------
| 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

这似乎没有返回正确的结果。我错过了什么?

编辑:需要的结果

        ----------------------
        | 区别| 最大 |
        ----------------------
        | 1 | 4 |
        | 2 | 4 |
        | 3 | 4 |
        | 4 | 4 |
        ----------------------
4

3 回答 3

4

我认为Itay Moav-Malimovka的解决方案非常完美,但是如果你真的想要两列,你可以使用....

select distinct(survey_id) as identifier, 
       (select max(survey_id) from survey) as "current" 
  from survey_main;

干杯!

于 2013-03-18T20:35:21.573 回答
3

如果您在一个查询中计算了所有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
于 2013-03-18T20:26:47.513 回答
2
SELECT DISTINCT *
FROM T
ORDER BY SURVEY_ID DESC

第一个结果是 MAX,整个 Dataset 是不同的

于 2013-03-18T20:24:51.693 回答