pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

    <small id='uDCHx'></small><noframes id='uDCHx'>

  1. <tfoot id='uDCHx'></tfoot>
      <bdo id='uDCHx'></bdo><ul id='uDCHx'></ul>
    <legend id='uDCHx'><style id='uDCHx'><dir id='uDCHx'><q id='uDCHx'></q></dir></style></legend>
    1. <i id='uDCHx'><tr id='uDCHx'><dt id='uDCHx'><q id='uDCHx'><span id='uDCHx'><b id='uDCHx'><form id='uDCHx'><ins id='uDCHx'></ins><ul id='uDCHx'></ul><sub id='uDCHx'></sub></form><legend id='uDCHx'></legend><bdo id='uDCHx'><pre id='uDCHx'><center id='uDCHx'></center></pre></bdo></b><th id='uDCHx'></th></span></q></dt></tr></i><div class="knfwz3g" id='uDCHx'><tfoot id='uDCHx'></tfoot><dl id='uDCHx'><fieldset id='uDCHx'></fieldset></dl></div>

    2. mySQL 和 postgreSQL 中的 Group by 子句,為什么 postg

      Group by clause in mySQL and postgreSQL, why the error in postgreSQL?(mySQL 和 postgreSQL 中的 Group by 子句,為什么 postgreSQL 會(huì)出錯(cuò)?)
      <tfoot id='wDGej'></tfoot>
        <legend id='wDGej'><style id='wDGej'><dir id='wDGej'><q id='wDGej'></q></dir></style></legend>

        <i id='wDGej'><tr id='wDGej'><dt id='wDGej'><q id='wDGej'><span id='wDGej'><b id='wDGej'><form id='wDGej'><ins id='wDGej'></ins><ul id='wDGej'></ul><sub id='wDGej'></sub></form><legend id='wDGej'></legend><bdo id='wDGej'><pre id='wDGej'><center id='wDGej'></center></pre></bdo></b><th id='wDGej'></th></span></q></dt></tr></i><div class="woctwjh" id='wDGej'><tfoot id='wDGej'></tfoot><dl id='wDGej'><fieldset id='wDGej'></fieldset></dl></div>
          • <bdo id='wDGej'></bdo><ul id='wDGej'></ul>

            <small id='wDGej'></small><noframes id='wDGej'>

                <tbody id='wDGej'></tbody>

              1. 本文介紹了mySQL 和 postgreSQL 中的 Group by 子句,為什么 postgreSQL 會(huì)出錯(cuò)?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

                問(wèn)題描述

                假設(shè)我有這個(gè)表:named = the_table其結(jié)構(gòu)為:

                postgreSQL:

                 create table the_table (col3 SERIAL, col2 varchar, col1 varchar, PRIMARY KEY(col3));

                MySQL:

                create table the_table ( col3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, col2 varchar(20), col1 varchar(20) )

                然后我插入了表格:

                INSERT INTO the_table (col2,col1) VALUES('x','a'),('x','b'),('y','c'),('y','d'),('z','e'),('z','f');

                現(xiàn)在表格如下所示:

                col3 |col2 |第 1 列------+------+------1 |× |一種2 |× |乙3 |是 |C4 |是 |d5 || |電子6 || |F

                當(dāng)我做這個(gè)查詢時(shí):

                select * from the_table group by col2

                然后在mysql中我得到:

                1 x a3 年5澤

                在 postgreSQL 中,我收到錯(cuò)誤:

                錯(cuò)誤:列the_table.col3"必須出現(xiàn)在 GROUP BY 子句中或用于聚合函數(shù)中LINE 1: select * from the_table group by col2;

                我的問(wèn)題:

                這個(gè)錯(cuò)誤是什么意思?什么是聚合函數(shù)?

                當(dāng)它在 MySQL 中工作時(shí),為什么它不能在 postgreSQL 中工作?

                解決方案

                您需要使用 聚合函數(shù):

                <塊引用>

                聚合函數(shù)從一組輸入計(jì)算單個(gè)結(jié)果值.

                SELECT col2, MIN(col3) AS col3, MIN(col1) AS col1FROM the_table按 col2 分組;

                db<>小提琴演示<小時(shí)><塊引用>

                MySQL 處理 GROUP BY:

                在標(biāo)準(zhǔn) SQL 中,包含 GROUP BY 子句的查詢不能引用到選擇列表中未命名的非聚合列GROUP BY 子句

                和:

                <塊引用>

                MySQL 擴(kuò)展了 GROUP BY 的使用,以便選擇列表可以引用未在 GROUP BY 子句中命名的非聚合列.這意味著前面的查詢?cè)?MySQL 中是合法的.您可以使用此功能通過(guò)避免不必要的列排序和分組來(lái)獲得更好的性能.但是,這主要在未在 GROUP BY 中命名的每個(gè)非聚合列中的所有值對(duì)于每個(gè)組都相同時(shí)很有用.服務(wù)器可以自由地從每個(gè)組中選擇任何值,因此除非它們相同,否則選擇的值是不確定的

                因此,對(duì)于沒(méi)有顯式聚合函數(shù)的 MySQL 版本,您最終可能會(huì)得到不確定的值.我強(qiáng)烈建議使用特定的聚合函數(shù).

                <小時(shí)>

                來(lái)自 MySQL 對(duì) GROUP BY 的處理:

                <塊引用>

                SQL92 及更早版本不允許查詢的選擇列表、HAVING 條件或 ORDER BY 列表引用未在 GROUP BY 子句中命名的非聚合列.

                SQL99 和更高版本允許每個(gè)可選功能 T301 的此類非聚合如果它們?cè)诠δ苌弦蕾囉?GROUP BY 列:如果在 name 和 custid 之間存在這種關(guān)系,則查詢是合法的.例如,如果是客戶的主鍵,就會(huì)出現(xiàn)這種情況.

                示例:

                SELECT o.custid, c.name, MAX(o.payment)FROM 訂單 AS o加入客戶作為 cON o.custid = c.custidGROUP BY o.custid;

                Suppose I have this table: named = the_table whose structure is:

                postgreSQL:

                 create table the_table (col3 SERIAL, col2 varchar, col1 varchar, PRIMARY KEY(col3));
                

                MySQL:

                create table the_table ( col3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, col2 varchar(20), col1 varchar(20) )
                

                Then I inserted the table:

                INSERT INTO the_table (col2,col1) VALUES 
                ('x','a'),
                ('x','b'),
                ('y','c'),
                ('y','d'),
                ('z','e'),
                ('z','f');
                

                Now the table looks like this:

                col3 | col2 | col1 
                ------+------+------
                    1 | x    | a
                    2 | x    | b
                    3 | y    | c
                    4 | y    | d
                    5 | z    | e
                    6 | z    | f
                

                When I do this query:

                select * from the_table group by col2
                

                then in mysql I get:

                1 x a
                3 y c
                5 z e
                

                and in postgreSQL, I am getting error:

                ERROR:  column "the_table.col3" must appear in the GROUP BY clause or be used in an aggregate function
                LINE 1: select * from the_table group by col2;
                

                My Questions:

                What does this error mean? What is aggregate function ?

                When it works in MySQL , why can't it work in postgreSQL ?

                解決方案

                You need to use AGGREGATE FUNCTION:

                Aggregate functions compute a single result from a set of input values.

                SELECT col2, MIN(col3) AS col3, MIN(col1) AS col1
                FROM the_table 
                GROUP BY col2;
                

                db<>fiddle demo


                MySQL Handling of GROUP BY:

                In standard SQL, a query that includes a GROUP BY clause cannot refer to nonaggregated columns in the select list that are not named in the GROUP BY clause

                and:

                MySQL extends the use of GROUP BY so that the select list can refer to nonaggregated columns not named in the GROUP BY clause. This means that the preceding query is legal in MySQL. You can use this feature to get better performance by avoiding unnecessary column sorting and grouping. However, this is useful primarily when all values in each nonaggregated column not named in the GROUP BY are the same for each group. The server is free to choose any value from each group, so unless they are the same, the values chosen are indeterminate

                So with MySQL version without explicit aggregate function you may end up with undetermininistic values. I strongly suggest to use specific aggregate function.


                EDIT:

                From MySQL Handling of GROUP BY:

                SQL92 and earlier does not permit queries for which the select list, HAVING condition, or ORDER BY list refer to nonaggregated columns that are not named in the GROUP BY clause.

                SQL99 and later permits such nonaggregates per optional feature T301 if they are functionally dependent on GROUP BY columns: If such a relationship exists between name and custid, the query is legal. This would be the case, for example, were custid a primary key of customers.

                Example:

                SELECT o.custid, c.name, MAX(o.payment)
                FROM orders AS o
                JOIN customers AS c
                  ON o.custid = c.custid
                GROUP BY o.custid;
                

                這篇關(guān)于mySQL 和 postgreSQL 中的 Group by 子句,為什么 postgreSQL 會(huì)出錯(cuò)?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

                相關(guān)文檔推薦

                How to use windowing functions efficiently to decide next N number of rows based on N number of previous values(如何有效地使用窗口函數(shù)根據(jù) N 個(gè)先前值來(lái)決定接下來(lái)的 N 個(gè)行)
                reuse the result of a select expression in the quot;GROUP BYquot; clause?(在“GROUP BY中重用選擇表達(dá)式的結(jié)果;條款?)
                Does ignore option of Pyspark DataFrameWriter jdbc function ignore entire transaction or just offending rows?(Pyspark DataFrameWriter jdbc 函數(shù)的 ignore 選項(xiàng)是忽略整個(gè)事務(wù)還是只是有問(wèn)題的行?) - IT屋-程序員軟件開(kāi)發(fā)技
                Error while using INSERT INTO table ON DUPLICATE KEY, using a for loop array(使用 INSERT INTO table ON DUPLICATE KEY 時(shí)出錯(cuò),使用 for 循環(huán)數(shù)組)
                pyspark mysql jdbc load An error occurred while calling o23.load No suitable driver(pyspark mysql jdbc load 調(diào)用 o23.load 時(shí)發(fā)生錯(cuò)誤 沒(méi)有合適的驅(qū)動(dòng)程序)
                How to integrate Apache Spark with MySQL for reading database tables as a spark dataframe?(如何將 Apache Spark 與 MySQL 集成以將數(shù)據(jù)庫(kù)表作為 Spark 數(shù)據(jù)幀讀取?)

              2. <i id='BkTtf'><tr id='BkTtf'><dt id='BkTtf'><q id='BkTtf'><span id='BkTtf'><b id='BkTtf'><form id='BkTtf'><ins id='BkTtf'></ins><ul id='BkTtf'></ul><sub id='BkTtf'></sub></form><legend id='BkTtf'></legend><bdo id='BkTtf'><pre id='BkTtf'><center id='BkTtf'></center></pre></bdo></b><th id='BkTtf'></th></span></q></dt></tr></i><div class="3kyxljq" id='BkTtf'><tfoot id='BkTtf'></tfoot><dl id='BkTtf'><fieldset id='BkTtf'></fieldset></dl></div>

                  <tbody id='BkTtf'></tbody>
                  <bdo id='BkTtf'></bdo><ul id='BkTtf'></ul>

                      <small id='BkTtf'></small><noframes id='BkTtf'>

                      <legend id='BkTtf'><style id='BkTtf'><dir id='BkTtf'><q id='BkTtf'></q></dir></style></legend>
                      • <tfoot id='BkTtf'></tfoot>

                          主站蜘蛛池模板: 紧急泄压人孔_防爆阻火器_阻火呼吸阀[河北宏泽石化] | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 螺杆泵_中成泵业 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 山东信蓝建设有限公司官网 | 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 整车VOC采样环境舱-甲醛VOC预处理舱-多舱法VOC检测环境仓-上海科绿特科技仪器有限公司 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 电池高低温试验箱-气态冲击箱-双层电池防爆箱|简户百科 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 联系我们-腾龙公司上分客服微信19116098882 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 学习安徽网 | 冷却塔风机厂家_静音冷却塔风机_冷却塔电机维修更换维修-广东特菱节能空调设备有限公司 | 紫外荧光硫分析仪-硫含量分析仪-红外光度测定仪-泰州美旭仪器 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 |