首页
关于
Search
1
在投射和录制时显示敏感信息写给TeamViewer,anydesk,向日葵
8,614 阅读
2
sublime 3155-3175 LICENSE
7,910 阅读
3
mysql存储过程&时间累加插入
7,753 阅读
4
永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。
4,486 阅读
5
mysql-workbench中duration fetch的含义
4,460 阅读
ubuntu
linux
sublime
php
mysql
JS
CSS
其他
chrome
redis
登录
Search
标签搜索
mysql
curl
grep
journalctl
rename
You can't specify target table
only_full_group_by
Sub-process
警示
dropbox
mtr
curl抓取重定向
floor
intval
ceil
round
pixmap
adwaita
date.utc
gmmktime
五好的Book
累计撰写
194
篇文章
累计收到
31
条评论
首页
栏目
ubuntu
linux
sublime
php
mysql
JS
CSS
其他
chrome
redis
页面
关于
搜索到
2
篇与
的结果
2021-11-24
You cannot use the alias '' of an expression containing a window function in this context.
抛出这个错误一般是你使用窗口函数后直接在where子句里引用了窗口函数的结果,但是窗口函数的计算是在where子句之后才执行的,所以sql会抛出异常 ,那么该怎么解决这个问题呢?1.使用子查询2.使用 with的方法如:子查询的方式select title,(select name from clas where id=top.cid)cname,view from (SELECT title,cid,view,row_number () over ( PARTITION BY `cid` ORDER BY view desc ) t from book)top where t=1 with的方式with top as( SELECT title,cid,view,row_number () over ( PARTITION BY `cid` ORDER BY view desc ) t from book) select title,(select name from clas where id=top.cid)cname,view from top where t=1; 上述语句是从数据库中查询每个分类中点击最多的书,由此可以优雅的看出各个分类中那一本书最受欢迎。而如果我们使用group by 来做类似的求值 一般会出现only_full_group_by的错误提示,而且也不好处理
2021年11月24日
499 阅读
0 评论
0 点赞
2018-12-17
mysql8 only_full_group_by 的解决办法
Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'table.key' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 以上是报错信息,根据这个报错信息 在网海里捞了一捞,发现大部分的结果都是类似这样的set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';然而设置了却没有起作用.正确的设置方法 如下:set @@session.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; 当然sql_mode 的值 最好根据select @@global.sql_mode 得到的结果 做修改.把得到的值 中的ONLY_FULL_GROUP_BY去掉 还有另外一个解决办法 就是通过 any_value()这个内置函数SELECT name, ANY_VALUE(address), MAX(age) FROM t GROUP BY name; 在这种情况下,MySQL 会忽略address每个name组中值 的不确定性 并接受查询。如果您根本不关心为每个组选择非聚合列的哪个值,这可能很有用。 ANY_VALUE()不是聚合函数,与SUM()或 等函数不同 COUNT()。它只是起到抑制非确定性测试的作用。文档中给出了抛出这个错误的3种解决办法分别是:1.更改表以创建name主键或唯一NOT NULL列2.使用any_value3.禁用 ONLY_FULL_GROUP_BY参考:https://dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html#function_any-value
2018年12月17日
2,921 阅读
0 评论
0 点赞