首页 > 数据库 >MySQL和SQLserver中group by的区别

MySQL和SQLserver中group by的区别

时间:2022-12-05 00:12:22浏览次数:34  
标签:GROUP name SQLserver 60 score 报错 MySQL group

https://blog.csdn.net/weixin_48720080/article/details/126289174

力扣中做了一道题,group by可以在mysql中用,不能在mysqlserver中用,因为group by后面没有select中的字段

例如有表table,有id,name,score。三个字段
id,name,score
1, 张三,60
2, 李四,70
3, 王五,60

SQLserver中,如果在select语句中使用了group by分组,那么查询的字段只能是用来分组的字段,或者是被聚合函数包裹的其他字段,不然会报错。
这是因为同一组数据的其他字段不同的话,SQLserver没有做处理,不知道应该保留哪一条数据的值。

例如:SELECT name,score FROM table GROUP BY score 会报错
Column 'name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. (8120)
不分组的字段被聚合函数包裹才能不报错,集合函数的作用是将同组的多个数据中选出一个,作为字段值,例如:
SELECT MAX(name),score FROM table GROUP BY score 不会报错
张三,60
李四,70

在MySQL中就没有这个问题,GROUP BY 并不会影响查询的字段,因为他内部有想当与limit(1)的操作,分组的数据有多组时,截取第一条返回。

例如:SELECT name,score FROM table GROUP BY score
张三,60
李四,70
王五,60
————————————————
版权声明:本文为CSDN博主「拥抱白菜的猪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_48720080/article/details/126289174

标签:GROUP,name,SQLserver,60,score,报错,MySQL,group
From: https://www.cnblogs.com/Dongmy/p/16951265.html

相关文章

  • 忘记mysql本地root的登录密码该怎么办??
    解决过程:1、编辑/etc/my.cnf在[mysqld]配置部分添加一行skip-grant-tables2、保存后重启mysql[root@localhostetc]#servicemysqldrestartShuttingdownMySQL.......
  • MySQL MHA
    一、MHA概述MHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点故障的问题。MySQL故障切换过程中,MHA能做......
  • Mysql 权限操作
    --使用mysql库,查询host和用户名usemysql;selecthost,userFROMuser--创建一个用户(这样创建默认是%,表示任何ip都可以连接)createuser'zhang3(这里填写用户名)'IDEN......
  • MySQL 存储过程浅谈
    一、存储过程定义​存储过程(StoredProcedure):一组为了完成特定功能的SQL语句集,存储在数据库中,经过一次编译后不需要再次编译。二、存储过程特点1、可以完成复杂的判断和......
  • MySQL 高级SQL语句
    一、高级SQL语句(进阶查询)先准备2个表一个location表:  一个store_info表:  1.1selectselect,显示表格中一个或数个字段的所有数据记录。    1.2dis......
  • Mysql主从复制,读写分离
    一、Mysql主从复制概述在企业中,业务数据量通常都比较大,单台Mysql在安全性,高可用性和高并发方面都无法满足实际需求,因此可以通过主从复制的方式来同步数据,再通过读写分离来提......
  • MySQL数据库 事务
    一、事务的概念事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么......
  • MySQL存储引擎
    1.MyISAM底层存储(非聚集索引方式)与InnoDB底层存储(聚集索引方式)1.1MyISAM底层存储(非聚集索引方式)Myisam创建表后生成的文件有三个:frm:创建表的语句MYD:表里面的数据文......
  • MySQL 日志管理
    一日志分类日志种类 作用错误日志 记录MySQL服务器启动、关闭及运行错误等信息事务日志 1、redolog重做日志2、undolog回滚日志查询日志 记录所有的sql慢查询日志 记......
  • MySQL数据库用户管理
    一、数据库用户管理1.1新建用户 CREATEUSER'用户名'@'来源地址'[IDENTIFIEDBY[PASSWORD]'密码'];复制代码'用户名': 指定将创建的用户名。'来源地址': 指定......