为什么我的SQL查询给了我一个不同于我预期的表?

时间:2017-04-20 13:00:38

标签: mysql sql

我不知道我在这里做错了什么......

  

在下面写一个查询,检索舱室和最大吨位   对于每个不同的腔室值作为列max_tonnage来自   按房间分组的航程表。

这是我的SQL查询:

SELECT chamber, MAX(tonnage), COUNT() AS max_tonnage
FROM voyages
GROUP BY chamber

它给了我这张桌子:

#   chamber MAX(tonnage)    max_tonnage
1   A        1150           49
2   D        880             5

我需要得到这张表:

#   chamber max_tonnage
1   A         1150
2   D         880

我不明白的是......它如何将MAX(吨位)显示为一列?我做错了什么?

4 个答案:

答案 0 :(得分:1)

这就是您的查询要求它做的事情。

试试这个

SELECT chamber, MAX(tonnage) AS max_tonnage FROM voyages GROUP BY chamber

答案 1 :(得分:1)

代码中有一个不必要的COUNT()。尝试

SELECT chamber, MAX(tonnage) AS max_tonnage FROM voyages GROUP BY chamber

答案 2 :(得分:0)

您希望结果是两列,但您的select子句返回三列。 试试这个:

SELECT室,MAX(吨位)AS max_tonnage FROM航行GROUP BY室

答案 3 :(得分:-1)

假设#rowid,您要求返回3列:

1 chamber
2 MAX(tonnage)
3 COUNT() AS max_tonnage

- >删除3