1
SELECT a.first_field, min(a.second_field), X 
FROM a
GROUP BY (a.first_field)

我希望X成为min(a.second_field)选择的行中的a.third_field 我该怎么做?

详细解释:

min(a.second_field)从按a.first_field分组的值(来自行)中检索一个最小值。检索到的值必须来自一行,对吗?我希望查询还从min 函数选择的行中返回另一个字段值。不仅是min 函数处理的字段的最小值。

4

3 回答 3

2

您应该使用ROW_NUMBER()

select first_field,second_field,third_field
from
(
SELECT a.*,
       ROW_NUMBER() 
         OVER (PARTITION BY a.first_field  
               ORDER BY second_field) 
        as rn
FROM a
) b where b.rn=1;

SQLFiddle 演示

于 2013-07-09T08:57:18.553 回答
0

我想,您想从具有second_field最小值的行中找到third_value。然后使用这个:

SELECT a.first_field, a.second_field, a.third_field
FROM a
WHERE a.third_field = MIN(a.third_field)
GROUP BY a.first_field
于 2013-07-09T05:59:45.503 回答
0

尝试:

SELECT b.*, min(a.third_field) FROM (
SELECT a.first_field, min(a.second_field) 
FROM a
GROUP BY (a.first_field) ) as b
INNER JOIN a

格式不正确,但它应该可以工作

于 2013-07-09T06:00:28.647 回答