首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么 GROUP BY 之后不能直接引用原表中的列

为什么 GROUP BY 之后不能直接引用原表(不在 GROUP BY 子句)中的列 ? 莫急,我们慢慢往下看。...通过上图,相信大家也都能看到,这里不做更深入的讲解了,有兴趣的可以去查相关资料。 为什么聚合后不能再引用原表中的列   很多人都知道聚合查询的限制,但是很少有人能正确地理解为什么会有这样的约束。...SQL 的世界其实是层级分明的等级社会,将低阶概念的属性用在高阶概念上会导致秩序的混乱,这是不允许的。此时我相信大家都明白:为什么聚合后不能再引用原表中的列 。...总结   1、SQL 严格区分层级,包括谓词逻辑中的层级(EXISTS),也包括集合论中的层级(GROUP BY);   2、有了层级区分,那么适用于个体上的属性就不适用于团体了,这也就是为什么聚合查询的...SELECT 子句中不能直接引用原表中的列的原因;   3、一般来说,单元素集合的属性和其唯一元素的属性是一样的。

1.7K10

为什么我的两个表建立数据关系有问题?

小勤:大海,为什么我这两个简单的表建立数据关系有问题啊? 大海:啊?出什么问题了?...小勤:你看,我先将表添加到数据模型,这是订单明细表的: 用同样的方法将产品表也添加到数据模型,然后创建表间关系,结果出错了! 大海:你的产品表里的产品名称重复了。 小勤:啊?...大海:那你能保证用vlookup查到的结果是你想要的吗? 小勤:啊,也对,vlookup都是返回最先找到的一个,这可能是错的。 大海:所以说,仔细想想,这种逻辑是不能成立的。...小勤:啊,知道了,看来我还是得把订单明细表里的产品ID放出来,不然做出来的数据分析都是不对的。 大海:很棒,这么快就想到产品ID的问题了。...小勤:你上次《表间关系一线牵,何须匹配重复拼数据》的文章里不是有提醒吗?只是我没想到我的数据那么快就存在这种情况。 大海:呵呵,名称重复的情况太正常了,所以尽可能都用ID编码。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    神奇的 SQL 之层级 → 为什么 GROUP BY 之后不能直接引用原表中的列

    为什么 GROUP BY 之后不能直接引用原表(不在 GROUP BY 子句)中的列 ? 莫急,我们慢慢往下看。...通过上图,相信大家也都能看到,这里不做更深入的讲解了,有兴趣的可以去查相关资料。 为什么聚合后不能再引用原表中的列   很多人都知道聚合查询的限制,但是很少有人能正确地理解为什么会有这样的约束。...SQL 的世界其实是层级分明的等级社会,将低阶概念的属性用在高阶概念上会导致秩序的混乱,这是不允许的。此时我相信大家都明白:为什么聚合后不能再引用原表中的列 。...总结   1、SQL 严格区分层级,包括谓词逻辑中的层级(EXISTS),也包括集合论中的层级(GROUP BY);   2、有了层级区分,那么适用于个体上的属性就不适用于团体了,这也就是为什么聚合查询的...SELECT 子句中不能直接引用原表中的列的原因;   3、一般来说,单元素集合的属性和其唯一元素的属性是一样的。

    2.2K20

    为什么我建议需要定期重建数据量大但是性能关键的表

    如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~ 本文是“为什么我建议”系列第三篇,本系列中会针对一些在高并发场景下,我对于组内后台开发的一些开发建议以及开发规范的要求进行说明和分析解读...往期回顾: 为什么我建议在复杂但是性能关键的表上所有查询都加上 force index 为什么我建议线上高并发量的日志输出的时候不能带有代码位置 一般现在对于业务要查询的数据量以及要保持的并发量高于一定配置的单实例...BY id DESC LIMIT 20 这个表的分片键就是 user_id 一方面,正如我在“为什么我建议在复杂但是性能关键的表上所有查询都加上 force index”中说的,数据量可能有些超出我们的预期...所以不能在这种在线业务关键表上面使用。所以最好一开始就能估计出大表的量级,但是这个很难。...,在原表上加好触发器同步更新到新建的表,并且同时复制数据到新建的表中,完成后,获取全局锁修改新建的表名字为原来的表名字,之后删除原始表。

    88330

    工程物料管理信息化建设(七)——为什么箱单和合同量单对不上

    其实也很困难,只能说情况比成套设备好,毕竟标准的材料编码体系从数据结构角度而言提高了材料分项和合并的可操作性,但是在工程实践中,依然有现实问题导致无法做到一一对应,比如我们要买100个阀门,我们会在合同量单里写一行阀门规格...第二,一览表不等于一张表 一览表为什么开发的那么困难,其实有一个误区是我们总想把数据出在一张表上,把材料的全生命周期状态放在一行里显示出来,我们想来想去放在一行的好处到底是什么?...而当我们换个思路,一览表还是可以出来的,我们一览表中的一行数据在材料的不同阶段曾经经历了分项与合并,因此一行数据在某些节点其实内部包含着一个树形结构。...我回想起PRM为什么没有这种一览表,可能也就是这个原因,PRM采用类似我们目前做的综合查询界面来解决数据的查询检索,这个问题我觉得PRM已经提供了标准的解决思路,我们没有必要继续撞南墙。...,不能按他们的要求分拆行,行,我们把模板解锁,让他们加行,但是问题再来,加行还是不行,你合同上的材料描述和箱单的材料描述都不一样怎么填?

    48010

    《叶问》32期,一样的Python代码,为什么可以删表,却不能更新数据

    conn.cursor() sql = "drop table tmp1" cur.execute(sql) cur.close() conn.close() 回答 其实问题并不复杂,有几个原因: 要写入的表是...连接数据库时,需要自行设定事务自动提交模式,是开启还是关闭。 pymysql模块里,默认不启用自动提交模式。 所以对表进行DML操作时,需要提交事务后才能成功。...而删除表是DDL操作,目前DDL操作还不支持事务,所以即便没有开启自动提交,也能成功。 知道上面的原因就好办了。...我们先看下pymysql源码中关于自动提交的设定: [root@yejr-mgr1 pymysql]# cat /usr/lib/python2.7/site-packages/pymysql/connections.py...简言之,有几点建议: 当有大批量数据更新时,可以先关闭autocommit,等事务结束后,再手动提交。事务commit时要刷新redo log、binlog等,代价还是比较大的。

    48730

    晋升季,如何减少 50%+ 的答辩材料准备时间、调整心态(个人经验总结)

    那么为什么突然要聊这么一个话题呢,有两个原因: 最近博主晋升了一次,在这个过程中,准备答辩内容及材料是非常耗时耗力的,相信小伙伴萌不花上一个月、不改个 3 遍以上的答辩材料都是 NB 的了,搞完一次答辩褪一层皮...所以小伙伴萌可以循着这个思路去将当时的问题以及解决方案补充到答辩材料中,这样就不会感觉到没东西说了。...举例,比如说想体现出实时计算 Flink 中的状态管理是非常复杂的,但是如果评委是做离线数据的话,他们其实是对状态处理没有很多接触的,所以我这里就得考虑多解释一下状态管理为什么复杂,状态管理为什么难。...答辩材料慎用标红加粗:做答辩材料时,小伙伴萌有时会回去把一些自己认为重要的字体进行加粗标红,但是一定要想清楚标红的逻辑,自己需要尝试说明为什么标红加粗,不然标红了之后,在答辩过程中,不解释标红的逻辑,评委会懵逼...项目成果:可以简单带过就可以,比如说我在数据建设上做了什么东西,达成了什么目标?在数据保障、数据沉淀、知识传播上做了什么?

    1.9K30

    关于“2+2”辅导员保研的唠唠叨叨

    选聘通知中的“2+2”辅导员保障措施 03 竞争力 通过衡量比较,我认为我的优势与核心竞争力在于学生工作与个人综合素养。...通过对比“2+2”辅导员报名表与推免资格申请表可以看出,我在填写“2+2”辅导员申请表的时候,各项经历与荣誉都可以写得满满当当,并且可以找到一定的亮点与个人特色,但是当我看到推免资格申请表的时候,我的科研经历与科研成果可能并不能写出很多亮点...,放在众多申请表中也不能脱颖而出。...邮箱问题 邮箱要填正式邮箱,如果学校有专门的邮箱就首选学校邮箱(一般学校会有自己的邮箱系统,学校内的人员都可以注册),如果没有,就要注册正规邮箱,千万不要用qq邮箱,这是非常不正式的。...特别特别特别感谢小武同学为我的报名表的付出! 证明材料/支撑材料 证明材料主要是证明你所获得奖项的真实性,但在这里也要有自己的小巧思。

    5.7K41

    PDMS PipelineTool 1.0.0.1版发布

    E3D里面测出来的); 螺栓MTO材料表以前做的时候材料编码这一列没有填数据,在热心用户的“鞭策”下加好了; 修复一个bug,螺栓数量求和操作时,没有将PartNumber放在分项判断中,导致材料量重复计算...在1.0.0.0版本里,当branch全部是承插焊的时候,尾部最后一个元件如果是承插焊口的话,会被意外创建到branch的头部去,sample项目数据量太小没有测出来,目前已经修复。...2.MTO材料表功能优化 螺栓MTO材料表以前做的时候材料编码这一列没有填数据,在热心用户的“鞭策”下加好了;这一列目前填写的是元件在等级库中的名称,如果使用CI做编码的话,这一列可以显示材料的PartNumber...同时修复了一个bug,螺栓数量求和操作时,没有将PartNumber放在分项判断中,导致材料量重复计算,因为之前没显示材料编码这一列,所以求和的时候也把这一列忽略了; 图2:bug错误示例截图 增加了一个开关...图3:选按等级分项的效果 图4:选不按等级分项的效果 3.增加了致谢页面 我说要暂时告一段落,平躺休息一下,你们喊同志醒醒还有个bug。 总之还是很感谢这么多支持和鼓励的朋友。

    35630

    软著申请全面攻略:从零到成功,轻松上手

    在开始今天的分享之前,我想先推荐一篇非常精彩的文章。 文章《蓝牙耳机丢了,我花几分钟写了一个小程序,找到了!》...后面还有几个格子也随便填下就是。 以上内容注意字数限制,其中开发目的、面向领域/行业、软件的主要功能这三部分有最少字数要求。其中,源程序量的行数要跟所提交的源代码文档中的行数保持一致。...正经的说,程序鉴别材料是指在软件著作权申请中,用于证明软件原创性和独创性的程序材料;直白点说,就是程序的源码。...在大部分软著申请的补正提交材料上,都是申请表和软件说明文档出的问题,所以务必好好注意软件说明文档的撰写。 说明书基本要求 语言:自然语言,尽量通俗易懂,少用术语。...(名称和版本号要和申请表完全一致) 行数:一页不少于30行,有图除外。 如果文档内容过多,请写目录。(我等大学生大部分不会有这个问题) 可以根据情况,适当添加软件代码编程环境的安装过程。

    26520

    感谢前任程序员赏饭吃!

    ,形成文档,万一哪天我也离职了,后人可以翻阅填坑。...数据库设计 当我打开数据库的时候发现,所有的表,所有的字段都没有备注,所以赶紧跟项目实施对了一下午的数据库,全部加上了注释(谢天谢地,至少还留了一个懂项目的实施) 在盘数据库的过程中,我痛苦的发现他的数据库设计完全不按章法...,我的崩溃是:为什么明明这么清楚的逻辑要写的这么复杂!!!...而且,这套算工资的系统数据量并不大,现在运行半年了,数据量最大的那张表只有 40 多万(日志表不算),再加上计算工资逻辑复杂,虽然需要关联的表多,如果能够妥善加好索引,在持久层就定义好数据结构,把想要的原始数据处理好...而且他前端渲染表格的方式是这样的,手动拼接字符串然后填充到网页里 在了解 H-UI 是基于 bootstrap 开发之后,我果断用了 bootstrap-table 去重构前端渲染方式,至少页面这个时候可以渲染出来的

    39210

    SQL:函数以及约束

    ; 比如:上表中id已经自动填充到3了,如果我插入一行数据失败了,然后我再插入一行数据成功了,那么新插入的一行数据的id就是5,而不是4; 2>检查(check) 这个比较简单,只需要注意格式就可以了...,每个员工都有一个所属的部门,部门都有一个id序号,而我们在填员工的部门id时必须得按照部门表中的id来填,也就是员工表中的dept_id的范围约束在了部门表的id取值中,这样就可以保证每个员工的所属部门都是存在的...; 现在创建员工表: 在没有使用外键之前,尽管两张表在逻辑上有联系,但是在物理上是没有关系的,也就是说我更改部门表中的id员工表没有任何反应,我在员工表中填一个不存在的一个部门id也不会报错; 1...; 3>删除和更新行为 1>CASCADE(同步) 如果我把部门表中id为1的数据更改为6,那么员工表中的原来dept_id是1的也会变成6; 如果我如果把部门表中id为1的数据删除,那么员工表中的原来...dept_id是1的那一行的数据都会被删除; 2>SET NULL 如果我把部门表中id为1的数据更改为6或者删除,那么员工表中的原来dept_id是1就会全部变成null; 总结 非空约束:NOT

    3500

    ROP-Ret2dl_resolve学习(2)

    header.sh_addr #rel_plt = 0x0848364 #readelf -S bof|grep ".rel" ###这里有一点很迷惑,两个结果都一样,但是我自己输入的地址怎么也不能重定向...header.sh_addr #rel_plt = 0x0848364 #readelf -S bof|grep ".rel" ###这里有一点很迷惑,两个结果都一样,但是我自己输入的地址怎么也不能重定向...末尾追加8位,并将0x7填充到后8位上 fake_reloc = p32(write_got)+p32(r_info)#fake_reloc即伪造的.rel.plt表 st_name = 0x4c#[write...header.sh_addr #rel_plt = 0x0848364 #readelf -S bof|grep ".rel" ###这里有一点很迷惑,两个结果都一样,但是我自己输入的地址怎么也不能重定向...header.sh_addr #rel_plt = 0x0848364 #readelf -S bof|grep ".rel" ###这里有一点很迷惑,两个结果都一样,但是我自己输入的地址怎么也不能重定向

    37411

    腾讯互联网人类学科研支持计划2015

    那么,人际交往及社会活动中,为什么需要诸如微信等科技产品来实现 “连接”?可以带来什么作用?背后有何更深层次的原因和意义?怎样才能更好地发挥科技产品的连接作用?  ...最终满足平台、开发者、用户三方的需求。那么,线下的集市、展销会等是否与线上开放平台有相似之处?从人类学的角度看,为什么会产生开放平台(线上和线下)?...符合条件的申请者可以下载申请表和专家推荐表,填妥后在2015年11月27日前提交给中国田野调查基金会。   申请表(一份)和专家推荐表(必须由两个及以上专家推荐)需要同时提交电子文档和打印文档。...围绕互联网法律、公共政策、互联网经济、大数据和互联网人类学等研究方向,高度重视互联网行业及其自身业务模式发展中的互联网人类学问题,特别是社交产品、移动互联网时代的人类学问题研究。...受资助人未能提交调查报告,或其报告学术质量过低,该受资助人将不能再申请与本基金有关的所有资助项目,且不再下拨余下的调查经费。优秀的调查报告可以考虑结集出版。

    65790

    充电11分钟续航400公里!Nature刊发华人教授锂电新研究:只用加一层薄镍箔

    那么这个研究团队是如何让电池充电速度飞升的? 11分钟,充电70% 在本研究展开前,王朝阳院士根据先前的成果指出: 电池在一个较高的温度范围内运行得最好,但也不能太热。...为了改善这些问题,并提高充电速度,研究人员主要从3个角度做出调整: 他们采用了一种叫ATM的方法,并且把阳极的孔隙率调节到更大,还把电解质升级成了双盐电解质。 下面细说一下ATM。...具体而言就是,在锂离子电池工作过程中,阳极表面会形成一层薄薄的电解质还原产物SEI(固体电解质中间相),可防止电解质进一步分解,稳定电极和电解质之间的界限。...实验结果显示,如果锂电池以每秒4库伦的速度,每次都充到最大容量的75%,锂电池可以正常重复使用900多次(可以跑约40万公里)。...而如果按同样的速度充电,每次花11分钟左右充到70%,则可正常重复使用2000多次(可以跑约80万公里)。 在充到70%的情况下,汽车的续航里程可达400公里。

    27220

    领导:你不能只是一个前端~

    不过关于这部分内容我之前的文章里有讨论过,今天主要是想从产品和交互的角度再来思考一下造轮子的意义: 我点击提交的这个按钮它一定会在数据提交的过程中变成 loading 状态 数据提交完毕之后一定会有一个...比如这个事情你问了之后,可能真实需求是希望尽可能保障生产环境数据的安全,让用户不能随意操作。...Tab 组件一般用于承载一些“平级的”数据,这意味着 Tab 中的内容是不分主次的。而对于一个用来创建订单的页面,为什么要有一个跟创建行为平级的 Tab?而且是看起来并没有什么关联的 Tab。...刚开始我了解到的上图中表格的功能是:在选择完用户之后,去加载该用户的默认地址和最近的 10 笔订单中的地址,然后点击地址可以自动填充到下面的地址输入框中去。...吐槽一下:这个需求是不同的下单类型对应不同的表单内容,如果你使用了折叠面板作为不同的表单内容的容器,这很容易让人误会成无论我选择的下单类型是啥,折叠面板里的内容都是可以填的,不同面板里的内容如果我填了最后都会被提交出去

    58310

    工程物料管理信息化建设(九)——项目应用中暴露出的细节问题

    对于工程项目,地管先期施工是常见情况,往往地管施工时期,详细设计还没有做完,PDMS模型还没有建好,不可能抽出带有编码的材料表,于是我们的材控人员会先拿着一个数出来的Excel材料表做地管的材料请购,这个数出来的...那么这个问题的错误在哪呢,我起了一个名字叫:数据污染。地管材料中的有编码的材料污染了主装置的材料表,导致主装置汇料操作时,遍历已请购材料的范围出现了非期望的部分(地管),计算的结果当然就错了。...总结 上述问题总结出两点感受: 1、数据结构的合理设计在信息化系统中的重要性,我们在设计数据结构的时候不但要从IT的角度出发,更要从业务层面去理解数据的关系、粒度,认识到不同类(对象)之间的边界,很多功能的实现离不开数据结构的正确设计...2、业务部室参与深度的重要性,这些问题都是由业务部室的工程师发现并提交给我的,说明软件的成功离不开用户的深度参与,很多业务层面问题只有在真实的项目数据检验中才能被发现,如果遇到支持软件应用并且喜欢琢磨思考的用户...我觉得,这个问题根本原因是公司对信息化的认识没有统一,信息化的认识需要从公司层面培养,并落地到基层,不能只是每次开个信息化会,上层领导或是某委员会之类在会上讨论讨论,做个规划设计,一线员工都不知道信息化是干嘛的

    42310

    工程物料管理信息化建设(二)——材料编码

    概述 为什么用编码标识材料 工程涉及的材料类别繁杂,数量众多,每种材料具有特定的性质,包括类别、制造工艺及标准、尺寸标准和材质等。...导致材料不能被正确识别; (3)无法实现数据集成;文字描述从信息化角度来说无法作为关键字。 材料编码体系是基础和核心 如果要建立物料管理系统,首先应该建立材料编码体系。...(2)两种不同的管子打完坡口可能从外观上分别不出来了,没有丰富经验的工程师是不能判断出应该用哪一种管子的,说明这个编码有时并不能帮助我们分辨材料的规格。...物资编码数据结构模型 MCAT_PART(描述材料编码的实体) MCAT_PHRASE_TO_LIST_ROUTES(简称Route表) MCAT_LISTS(简称List表) MCAT_LST_INTERSECTS...用ID作为条件参数向Route表询问路径,得到下一个Phrase List的ID值,通过对Phrase List数据表检索将指针指向下一个Phrase List表,到此完成了一个问答步骤。

    97820

    站在工程的角度,谈谈我们如何学好ABAQUS?

    ,并和有限元功能结合进行结构和机械的耦合分析,并可以考虑机构运动中的接触和摩擦 复合材料分析:对复合材料进行模拟建模,进行强度计算校核 岩土分析:可以模拟隧道开挖,肯基填埋,边坡稳定等问题 建筑设计分析...可以尝试用fluent之类的。 在固体力学范畴,ansys,marc等也很有竞争力。abaqus并没有绝对优势。ABAQUS在土木工程中的应用那为什么要用abaqus呢?...我选择abaqus主要是传承的原因,我大学的时候用的是ansys。 三、如何使用Abaqus解决工程问题?...现在的Abaqus/CAE经过十几年的发展,仿真流程导向已经日趋完善。在使用Abaqus解决问题时,我们现需要站在工程的角度想下应该如何建立合理的力学模型。...这个力学模型初步搭建的过程是需要我们去做的,abaqus不能处理这些事情。 当我们处理好这些事之后,还不着急,我们还要完成模型的简化。真实的世界一定是多场耦合问题。

    1K20
    领券