zoukankan      html  css  js  c++  java
  • 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    T-SQL核心语句形式:

    SELECT     --指定要选择的列或行及其限定 
    [INTO ]      --INTO子句,指定结果存入新表
    FROM      --FROM子句,指定表或视图
    [WHERE ]                 --WHERE子句,指定查询条件
    [GROUP BY ]           --GROUP BY子句,指定分组表达式
    [HAVING ]                --HAVING子句,指定分组统计条件
    [ORDER BY [ASC|DESC]]    --ORDER子句,指定排序表达式和顺序

    聚合函数:

    COUNT:求组中项数,返回int类型整数。

    GROUP BY 子句:指定用来放置输出行的组。指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。如果 SELECT 子句中包含聚合函数,则计算每组的汇总值。

    示例一(Select选择列表中存在聚合函数):

    错误的写法:

    SELECT U_ID,House_Addrinfo,COUNT(U_ID) AS CX
    FROM   YX_ChuShou
    GROUP BY U_ID
    ORDER BY CX DESC

    这条语句出现"选择列表中的列 'YX_ChuShou.House_Addrinfo' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。"的错误提示。

    正确的写法:

    SELECT U_ID,min(House_Addrinfo), COUNT(U_ID) AS CX
    FROM YX_ChuShou
    GROUP BY U_ID
    ORDER BY CX DESC

    SELECT U_ID,House_Addrinfo,  COUNT(U_ID) AS CX 
    FROM YX_ChuShou 
    GROUP BY U_ID ,House_Addrinfo
    ORDER BY CX DESC

     
    示例二(Select选择列表中不存在聚合函数):

    错误的写法:
    select au_fname,au_lname,zip, city,state
    from authors
    group by city

    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'authors.au_fname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'authors.au_lname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
     
    正确的写法:
    select au_fname,au_lname,zip, city,state
    from authors
    group by city,au_lname,au_fname,zip,state

    或:
    select au_fname,au_lname,zip, city,state
    from authors
    order by city    ---使用order by 子句进行排序

    即指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。

    小白:因为结果是一个表,所以一般不会出现   select *,sum(job_id)这么写的,不然sum就一个值,你让它跟谁并列显示一行去?  

    如果 select job_id,job_desc,sum(max_lvl) from jobs group by jobs.job_id,job_desc

    非要并列显示点什么,那对应列都应写在group by里,确保该列一个值就出现一次, 一个值对应一个sum

    有一个列就加进group by一个

  • 相关阅读:
    Java Json 数据下划线与驼峰格式进行相互转换
    php 将数组转换网址URL参数
    Swagger2常用注解及其说明 (转)
    Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念(转)
    bootstrap.css.map 404
    Git发生SSL certificate problem: certificate ha错误的解决方法
    防火墙禁ping:虚拟机ping不通主机,但主机可以ping虚拟机
    PhpStorm本地断点调试
    Java语言中姐种遍历List的方法总结
    Ubuntu18.04安装mysql5.7
  • 原文地址:https://www.cnblogs.com/limeiky/p/5499163.html
Copyright © 2011-2022 走看看