彼得·艾森特劳特:等待SQL:202y:GROUP BY ALL
💡
原文英文,约900词,阅读约需3分钟。
📝
内容提要
SQL中的GROUP BY功能得到改进,新语法GROUP BY ALL简化了分组操作,自动扩展为选择列表中不含聚合函数的元素。复杂查询仍需明确指定分组内容,以避免错误。该功能已在Oracle和PostgreSQL中实现,预计明年发布。
🎯
关键要点
-
SQL中的GROUP BY功能得到改进,新增语法GROUP BY ALL简化分组操作。
-
GROUP BY ALL自动扩展为选择列表中不含聚合函数的元素。
-
复杂查询仍需明确指定分组内容,以避免错误。
-
该功能已在Oracle和PostgreSQL中实现,预计明年发布。
-
GROUP BY ALL的正式含义是扩展为不包含聚合函数的选择列表元素。
-
使用GROUP BY ALL时,仍需考虑未分组的列,避免产生错误。
-
GROUP BY列表中不支持表达式,仅支持列引用,未来有意修复此问题。
-
使用GROUP BY ALL语法时需谨慎,以免因其他更改导致查询结果意外变化。
-
Oracle数据库已实现GROUP BY ALL支持,并撰写了SQL标准变更提案。
-
PostgreSQL在标准化后迅速接受了GROUP BY ALL的补丁。
❓
延伸问答
GROUP BY ALL在SQL中有什么作用?
GROUP BY ALL简化了分组操作,自动扩展为选择列表中不含聚合函数的元素。
使用GROUP BY ALL时需要注意什么?
使用GROUP BY ALL时,仍需考虑未分组的列,以避免产生错误。
GROUP BY ALL的正式含义是什么?
GROUP BY ALL的正式含义是扩展为不包含聚合函数的选择列表元素。
GROUP BY ALL在Oracle和PostgreSQL中的实现情况如何?
GROUP BY ALL已在Oracle和PostgreSQL中实现,预计明年发布。
GROUP BY ALL是否支持表达式?
目前GROUP BY列表中不支持表达式,仅支持列引用,未来有意修复此问题。
使用GROUP BY ALL可能带来哪些风险?
使用GROUP BY ALL可能导致查询结果意外变化,特别是在修改查询时。
🏷️
标签
➡️