我有一个mysql表,如下所示:
1 value1 value2 3534
2 value1 value1 8456
3 value1 value2 3566
4 value1 value3 7345
5 value2 value3 6734
我需要一个查询来选择具有不同第2列和第3列的所有行,例如,我希望本例的输出如下所示:
1 value1 value2 3534
2 value1 value1 8456
4 value1 value3 7345
5 value2 value3 6734
我找到了一些关于如何做到这一点的示例,但它们都分别在每一列上选择distinct。
发布于 2012-07-01 04:06:05
假设第一列是唯一的,您可以这样做:
SELECT id, col2, col3, col4
FROM yourtable
WHERE id IN
(
SELECT MIN(id)
FROM yourtable
GROUP BY col2, col3
)
在线查看它的工作方式:sqlfiddle
发布于 2012-07-01 04:06:13
假定表中的列为(id, col1, col2, col3)
,您可以:
SELECT *
FROM YourTable yt
JOIN (
SELECT MIN(id) as minid
FROM YourTable
GROUP BY
col1, col2
) filter
ON filter.minid = yt.id
发布于 2012-07-01 04:07:58
此查询确保column1和column2的组合是唯一的,同时选择第三列的最小值
SELECT col1, col2, MIN(col3)
FROM yourTable
GROUP BY col1, col2
https://stackoverflow.com/questions/11277251
复制相似问题