选择不同的值“多列”

时间:2019-04-02 14:03:10

标签: mysql sql

这是我的简化表

year | teacher
1    | john
2    | john
2    | sam
3    | john
3    | simon

当我在下面运行查询时

SELECT year, teacher FROM table1 GROUP BY year

它给了我结果:

year | teacher
1    | john
2    | john
3    | john

在这种情况下,年份列可以显示所有不同的值,但是教师列仍会重复。我也希望在教师专栏中也有不同的价值观。

我正在寻找的输出:

year | teacher
1    | john
2    | sam
3    | simon

1 个答案:

答案 0 :(得分:1)

此查询不是有效的SQL(即使MySQL碰巧接受了该查询):

SELECT year, teacher
FROM table1
GROUP BY year;

您需要围绕teacher的聚合函数:

SELECT year, MAX(teacher)
FROM table1
GROUP BY year;

也就是说,这并不能满足您的要求。在单个查询中很难做到这一点。而是使用两个查询:

SELECT DISTINCT year FROM table1;

SELECT DISTINCT teacher FROM table1;