zoukankan      html  css  js  c++  java
  • MySql查询语句中解决“该列没有包含在聚合函数或者groupby子句中”的相关问题方法

    首先引入语句来源,表结构和数据如下:

    需求是:查出员工(personname)在不同店铺(store)的总薪酬(salary),相同店铺输出store,不同店铺输出multi_store。

    正确查询语句如下:

    SELECT personname,(case when count(distinct Store)>1 then 'multi_store' else MAX ( store) end),sum(Salary) FROM dbo.StaffInformation
    GROUP BY PersonName

     第一想到的语句:(但是达不到想要的结果或者直接报错:“选择列表中的列'列名'无效,因为该列没有包含在聚合函数或group by 子句中”)

    SELECT personname,(case when count(distinct Store)>1 then 'multi_store' else store end),sum(Salary) FROM dbo.StaffInformation
    GROUP BY PersonName

    遇到类似的问题:首先看看输出的字段是不是你需要的,如果需要但是又不能放在group by中(因为放在group by中就得不到分组的效果,但是不放就报错)

    就要考虑将store这样的字段用个函数处理下。其实想想挺简单的,多遇到点问题 就能慢慢得到自己的一套解决问题的方案了。

       有问题可以随时评论。我基本上每天都会来一下。有问题互相探讨,学习,进步。

  • 相关阅读:
    MySQL常用函数及逻辑运算
    博客主题2
    TCPIP详解第1卷1.3TCPIP分层1.4互联网的地址1.5域名系统1.6封装
    删除数组中满足特定需求的数字
    自定义简洁浏览器主页
    Matlab图像处理函数:regionprops
    连通域的质心
    Matlab的GUI参数传递方式总结
    retrifit
    association ,collection
  • 原文地址:https://www.cnblogs.com/tec-1988/p/6070177.html
Copyright © 2011-2022 走看看