我有一个SQL视图,可以输出下表,两列
Column 1 Column 2
ID Value
1 10
1 12
1 15
2 3
2 6
我想搜索记录1返回最小值(10)的位置,记录2返回它的最小值(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