0

我有一张像这样的桌子:

| ID | value |
|  0 |   5   |
|  1 |   2   |
|  0 |   1   |
|  1 |   6   |
|  2 |   3   |
|  2 |   8   |
|  1 |   2   |
|  0 |   1   |
|  2 |   4   |

我试图在我的结果中只接受一行 id ,其中 value 是所有列的最小值,例如:

SELECT DISTINCT * FROM table WHERE MIN(table.value) = table.value

我该如何解决?谢谢!

编辑:

我想要的输出是:

| ID | value |
|  0 |   1   | -> is the min of all the rows with id = 0
|  1 |   2   |
|  2 |   3   |

编辑2:

就像是:

SELECT DISTINCT *
FROM tableName AS A
WHERE value = (SELECT MIN(value) From tableName AS B WHERE A.ID=B.ID)

但是tableName是(SELECT * FROM ...........)..我该怎么做?

4

3 回答 3

1
SELECT DISTINCT ID, Value
FROM tableName
WHERE value = (SELECT MIN(value) From tableName)

SQLFiddle 演示

后续问题,如果最低相同但value不同会发生ID什么,将显示什么记录?

于 2012-10-12T00:42:18.327 回答
1

这个怎么样:

SELECT DISTINCT a.ID, a.value
FROM tableName AS a
WHERE a.value = (SELECT MIN(b.value)
                 FROM tableName AS b
                 WHERE a.id = b.id)
于 2012-10-12T01:45:53.817 回答
0

这就是你想要的

select id,min(value) from tableName group by id
于 2012-10-12T02:50:24.067 回答