当前位置: 首页 > news >正文

门户网站开发建设成本明细简述网站建设小组的五类成员

门户网站开发建设成本明细,简述网站建设小组的五类成员,淘宝标题优化工具推荐,阿里云 wordpress搭建文章目录 1. 什么是聚合列?2. 什么是非聚合列?3. 在 GROUP BY 查询中的非聚合列问题示例解决方案 4. 为什么 only_full_group_by 要求非聚合列出现在 GROUP BY 中?5. 如何判断一个列是聚合列还是非聚合列?6. 总结 在 SQL 中&#…

文章目录

      • 1. 什么是聚合列?
      • 2. 什么是非聚合列?
      • 3. 在 `GROUP BY` 查询中的非聚合列
        • 问题示例
        • 解决方案
      • 4. 为什么 `only_full_group_by` 要求非聚合列出现在 `GROUP BY` 中?
      • 5. 如何判断一个列是聚合列还是非聚合列?
      • 6. 总结

在 SQL 中, 非聚合列是指那些没有使用聚合函数(如 COUNTSUMAVGMAXMIN 等)的列。理解这个概念的关键在于区分 聚合列非聚合列


1. 什么是聚合列?

聚合列是指使用了聚合函数的列。聚合函数会对一组值进行计算,并返回一个单一的值。例如:

  • COUNT(*):计算行数。
  • SUM(column):计算某列的总和。
  • AVG(column):计算某列的平均值。
  • MAX(column):返回某列的最大值。
  • MIN(column):返回某列的最小值。

示例

SELECT COUNT(*) AS total_users FROM users;
  • 这里的 COUNT(*) 是一个聚合列,因为它使用了聚合函数 COUNT

2. 什么是非聚合列?

非聚合列是指没有使用聚合函数的列。这些列直接来自表中的数据,而不是通过计算得到的。

示例

SELECT name, age FROM users;
  • 这里的 nameage 都是非聚合列,因为它们直接来自表中的数据,没有使用任何聚合函数。

3. 在 GROUP BY 查询中的非聚合列

当使用 GROUP BY 时,查询会将数据按指定的列分组。对于非聚合列,MySQL 需要明确知道如何选择值,因为每个分组可能包含多行数据。

问题示例

假设有一个表 users,数据如下:

idnameage
1Alice20
2Bob20
3Charlie25

执行以下查询:

SELECT name, age, COUNT(*) FROM users GROUP BY age;
  • 这里的 age 是分组列,COUNT(*) 是聚合列。
  • name 是非聚合列,它没有出现在 GROUP BY 子句中,也没有使用聚合函数。
  • MySQL 不知道在分组后应该选择哪个 name 值(因为 age=20 对应两个 nameAliceBob)。
解决方案
  1. 将非聚合列添加到 GROUP BY 子句中

    SELECT name, age, COUNT(*) FROM users GROUP BY name, age;
    
    • 这样,MySQL 会按 nameage 分组,确保每个分组只有一行数据。
  2. 使用聚合函数处理非聚合列

    SELECT MAX(name), age, COUNT(*) FROM users GROUP BY age;
    
    • 这里使用 MAX(name),表示选择每个分组中 name 的最大值。

4. 为什么 only_full_group_by 要求非聚合列出现在 GROUP BY 中?

only_full_group_by 模式的目的是确保查询结果的明确性。如果没有这个限制,MySQL 可能会随机选择一个值作为非聚合列的结果,导致查询结果不可预测。

示例

SELECT name, age, COUNT(*) FROM users GROUP BY age;
  • 如果 age=20 对应两个 nameAliceBob),MySQL 可能随机返回 AliceBob,这会导致结果不一致。

通过启用 only_full_group_by,MySQL 会强制要求所有非聚合列都出现在 GROUP BY 子句中,从而避免这种不确定性。


5. 如何判断一个列是聚合列还是非聚合列?

  • 聚合列:使用了聚合函数(如 COUNTSUMAVGMAXMIN 等)。
  • 非聚合列:直接来自表中的数据,没有使用聚合函数。

示例

SELECT name, age, COUNT(*) AS total_users FROM users GROUP BY name, age;
  • nameage 是非聚合列。
  • COUNT(*) 是聚合列。

6. 总结

  • 非聚合列是指没有使用聚合函数的列,直接来自表中的数据。
  • GROUP BY 查询中,所有非聚合列必须出现在 GROUP BY 子句中,或者使用聚合函数处理。
  • only_full_group_by 模式的作用是确保查询结果的明确性,避免不明确的值。

通过理解聚合列和非聚合列的区别,可以更好地编写符合 only_full_group_by 要求的 SQL 查询。

在这里插入图片描述

http://www.yayakq.cn/news/999784/

相关文章:

  • wordpress 目录遍历南宁seo团队哪家好
  • 网站 一级域名 二级域名做汽配网站需要多少钱
  • 品牌型网站建设的好处wordpress固定链接+404
  • 网站站点风格wordpress 自写插件
  • 南京免费自助建站模板装修设计小程序
  • 哪个网站是免费的40平米办公室设计布局
  • 做电影网站什么后果网站会员整合
  • 广东网站备案要求品牌策划设计包括哪些内容
  • 网站专题设计模板汕头娱乐场所最新消息
  • 广西建设厅关公网站青海设计网站
  • 微网站怎么做百度关键词排名荣耀手机正品官网查询
  • 帝国cms做视频网站性能如何临泉县建设局网站
  • 南山网站建设哪家好ppt主题模板下载免费
  • wordpress单页导出长沙网站seo哪家公司好
  • 做网站电脑开一天用多少钱wordpress 取消做这
  • 企业做网站得多少钱珠海免费模板建站
  • 随便编一个公司网站注册公司需要什么条件?
  • 简历模板免费下载网站网站网站是怎么建设的
  • 网站对于企业的意义游艇网站建设方案
  • 网站建设的步骤有哪些网站vip功能怎么实现
  • 徐州有哪些制作网站的公司吗亚洲成成品网站有线
  • 西南交通建设集团股份有限公司网站山东省建设厅举报网站
  • 深圳网站建设制作公司sketch做网站线框图
  • 设计网站需要什么条件wordpress站迁移后速度慢
  • 旅游设计专业网站做网站拉广告
  • 高质量的扬中网站建设网站的通知栏一般用什么控件做
  • 南京市高淳区住房与城乡建设局网站八步网站建设
  • 新公司网站建设分录阿里巴巴logo设计理念
  • 企业为什么要做网站网站搜索条怎么做
  • 有哪里可以做兼职翻译的网站展馆网站建设