gpt4 book ai didi

sql - SQL标准中真的有必要有GROUP BY吗

转载 作者:行者123 更新时间:2023-12-05 08:33:00 25 4
gpt4 key购买 nike

写了几年 SQL 后,我发现必须将我感兴趣的列放在 SELECT 中,然后在 GROUP BY 中再次指定它们,这常常很烦人。我不禁想,为什么我们必须这样做?

用户必须具体说明分组依据的列的原因是什么?难道我们不能让 SQL 引擎假设如果 SELECT 中有聚合函数,则按其余非聚合列分组

当您在 SELECT 中有一个大的 CASE WHEN 时,这将特别有用并且更加简洁。

最佳答案

因为它们可能并不总是完全匹配。

例如,如果我想找出每个类别的最大图书数量,我可以这样做:

select max(cnt)
from (
select count(*) as cnt
from books
group by category
) t;

在某些数据库中,例如 Oracle,您甚至可以这样做:

select max(count(*))
from books
group by category;

我真的不需要指定类别列,因为我不需要它。

一些数据库如 Postgres 支持在 group by 子句中使用别名。

关于sql - SQL标准中真的有必要有GROUP BY吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com