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

    摘自http://www.cnblogs.com/limeiky/p/5499163.html

    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一个

  • 相关阅读:
    try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
    BigDecimal 使用 静态方法总结
    成员内部类里面为什么不能有静态成员和方法?
    浅谈多态机制的意义及实现
    Java接口中的成员变量的意义
    IDEA 打包和导入 Jar 包
    Java static关键字
    Java this关键字
    Java 匿名对象
    Java JOptionPane 对话框
  • 原文地址:https://www.cnblogs.com/herizai/p/8452441.html
Copyright © 2011-2022 走看看