有人给我发了一个 SQL 查询,其中 GROUP BY
子句由以下语句组成: GROUP BY 1
。
这一定是笔误吧?没有为列指定别名 1。这意味着什么?我是否正确地认为这一定是一个错字?
原文由 Spencer 发布,翻译遵循 CC BY-SA 4.0 许可协议
这意味着 *“按您的选择子句中的第一列分组”。始终使用 GROUP BY 1
和 ORDER BY 1
。
您也可以使用 GROUP BY 1,2,3..
。很方便,但是需要注意那个条件;如果有人修改了您的选择列并且没有可视化,结果可能不是您想要的。
原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
2 回答2k 阅读
这意味着按结果集的第一列进行分组,无论它叫什么。您可以对
ORDER BY
执行相同的操作。