这是我的简化表
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
答案 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;