SQL搜索与重复表

时间:2017-05-31 21:22:02

标签: sql

我有一个SQL视图,可以输出下表,两列

Column 1   Column 2
ID         Value
1          10
1          12
1          15
2          3
2          6

我想搜索记录1返回最小值(10)的位置,记录2返回它的最小值(3)

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

SELECT 
    id
  , MIN(value)
FROM yourview
GROUP BY id

答案 1 :(得分:0)

您可以尝试以下方式:

select [id], min([value]), max([value]) 
from viewname 
group by id
order by id

方括号是SQL Server语法以回避关键字;您的数据库语法可能不同。你在用什么数据库?

答案 2 :(得分:0)

您可以使用Row_Number()OVER()。

; WITH cte AS (
    SELECT id1 = 1, value = 10 UNION ALL
    SELECT id1 = 1, value = 12 UNION ALL
    SELECT id1 = 1, value = 15 UNION ALL
    SELECT id1 = 2, value = 3 UNION ALL
    SELECT id1 = 2, value = 6
)
SELECT z.id1, z.value
FROM (
    SELECT id1, value,  ROW_NUMBER() OVER ( PARTITION BY id1 ORDER BY value ASC ) AS rn 
    FROM cte
) z
WHERE z.rn = 1

返回:

id1 value
1   10
2   3
相关问题