当前位置: 首页 > 面试题库 >

是否可以在不使用Group By子句的情况下在Select语句中使用Aggregate函数?

万俟心思
2023-03-14
问题内容

到目前为止,我已经写了Aggregate函数,后跟Group By子句,以基于SUM,AVG和其他Aggregate函数查找值。我对Group
By子句有些困惑。当我们使用Aggregate函数时,我需要在Group By子句中指定哪些列。否则,有没有使用Group
By子句的方法来使用Aggregate函数。


问题答案:

SELECT子句中没有聚合的所有列都必须位于GROUP BY中

好的:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3

也很好:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6

没有其他列=不需要GROUP BY

SELECT MAX(col4)
...

无法运作:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2

无意义:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)

由于查询变得模棱两可,因此在没有GROUP BY的情况下与其他列具有聚合(MAX等)没有意义。



 类似资料:
  • 问题内容: 在WHERE子句中有使用SELECT语句描述的名称吗?这是好/不好的做法吗? 这会是更好的选择吗? 它远没有那么优雅,但是运行起来比以前的版本要快。我不喜欢它,因为它在GUI中没有非常清晰地显示(并且SQL初学者需要理解它)。我可以将其分为两个独立的查询,但是随后事情变得混乱了…… 注意:我不仅需要日期和分数(例如姓名) 问题答案: 称为相关子查询。它有它的用途。

  • 是否可以在 SQL SERVER 中的事务中使用 SELECT 语句锁定行?我想锁定该行,以便外部的其他事务无法访问该行。 提交或回滚事务后,应释放该行。这就是我的意思。。。 有人有建议吗?我应该执行 UPDATE 语句来锁定该行吗? 请不要将此问题标记为重复问题。因为,我不是在问UPDATE语句,而是在问SELECT 编辑:我试图“设置事务隔离级别串行化”,但这锁定了太多东西。我的SP很大,它有

  • 问题内容: 基本上,我有一个react组件,其功能主体如下:(这是我的理想组件,这意味着它当前不起作用) 问题答案: 不完全一样,但是有解决方法。在React的文档中有一节关于条件渲染,您应该看一下。这是使用内联if-else可以做什么的示例。 您也可以在render函数中处理它,但是要在返回jsx之前。 还值得一提的是ZekeDroid在评论中提到的内容。如果您只是检查条件而又不想呈现不符合要求

  • 问题内容: 如果要使用Linq-SQL,还必须将DB Table拖到设计器表面以创建实体类。 我一直喜欢我的应用程序中的完全控制权,并且不喜欢dotnet创建的类。 是否可以使用我自己的数据访问层实体类在Linq和DB之间提供此连接? 我该如何完成? 问题答案: 您可以使用Linq-to-SQL非常轻松地编写自己的类-只需使用一些属性绘制类即可。 例如,这是我的一个项目中有一个非常简单的表,它可以

  • 问题内容: 我对对象使用开关盒有疑问: 例如:我的问题可以用Java复制: 如何使用实施? 问题答案: 这是子类型多态性有帮助的典型方案。请执行下列操作 然后,你可以简单的调用上。 如果你不能随意更改,和,则可以应用访问者模式来实现相同目的。

  • 问题内容: 我正在评估JOOQ是否可在仍在开发中的新系统中使用。我想避免在与应用程序一起开发数据库时生成代码,而只是为该应用程序起持久存储的作用。因此,预计数据库模式定义将由Java代码(java中的表定义)驱动。 JOOQ是否适合上述用例?是否有用于模式定义的Java DSL? 问题答案: JOOQ是否适合上述用例? 是的,许多jOOQ用户仅使用运行时库,而没有代码生成器。入门指南中提供了示例。