SQL 子句“GROUP BY 1”是什么意思?

新手上路,请多包涵

有人给我发了一个 SQL 查询,其中 GROUP BY 子句由以下语句组成: GROUP BY 1

这一定是笔误吧?没有为列指定别名 1。这意味着什么?我是否正确地认为这一定是一个错字?

原文由 Spencer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

这意味着按结果集的第一列进行分组,无论它叫什么。您可以对 ORDER BY 执行相同的操作。

原文由 Yuck 发布,翻译遵循 CC BY-SA 4.0 许可协议

这意味着 *“按您的选择子句中的第一列分组”。始终使用 GROUP BY 1ORDER BY 1

您也可以使用 GROUP BY 1,2,3.. 。很方便,但是需要注意那个条件;如果有人修改了您的选择列并且没有可视化,结果可能不是您想要的。

原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题