MySQL:结合b&列中的DISTINCT值。 c GROUP BY列a

时间:2015-02-23 21:57:37

标签: mysql database

这让我很沮丧。我有以下基本表结构:

+-----+-----+-----+
| YEAR| ID1 | ID2 |
+-----+-----+-----+
| 2012| 103 | 105 |
| 2012| 110 | 114 |
| 2013| 103 | 110 |
| 2013| 114 | 120 |
| 2014| 122 | 103 |
+-----+-----+-----+

我需要的是列ID1和ID2的不同值列表,按列YEAR按结果分组。为了增加趣味,必须按每个不同的值显示最低的YEAR。结果表应如下所示:

+-----+-----+
| Year|  ID |
+-----+-----+
| 2012| 103 |
| 2012| 105 |
| 2012| 110 |
| 2012| 114 |
| 2013| 120 |
| 2014| 122 |
+-----+-----+

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

使用union all建立关系(year, id)并将min(year)应用于该关系group by id

select min(year) min_year, id
from (
    select year, id1 id from your_table
    union all
    select year, id2 id from your_table
) x
group by id