同事工作中遇到一个问题:

select   count(billingdate),to_char(billingdate,'YYYYmm') month

from tu_trade

where to_char(billingdate,'YYYY') ='2017'and reportstat = 30

group by month;

-----执行报错,can't resolve month............

因为Sql语句执行顺序

(7)    SELECT

(8)    DISTINCT

(1)    FROM

(3)     JOIN

(2)    ON

(4)    WHERE

(5)    GROUP BY

(6)    HAVING

(9)    ORDER BY

(10)   LIMIT

Group by不能用别名的原因,因为执行到groupby(5)时,还没执行到select中的别名,所以别名还没生效。所以别名只能放到(7)之后,比如order中,distinct中。

遇到这种问题可以使用子查询替代

select month,count(month)

from

(selectcount(billingdate),to_char(billingdate,'YYYYmm')  as month

from tu_trade

where to_char(billingdate,'YYYY') ='2017'and reportstat = 30) a

group by month;

注意:

在mysql中,group by中可以使用别名;where中不能使用别名;order by中可以使用别名。其余像oracle,hive中别名的使用都是严格遵循sql执行顺序的,groupby后面不能用别名。mysql特殊是因为mysql中对查询做了加强。

参考

mysql group by 别名_[转]为什么group by后面不能使用别名(除MySQL)相关推荐

  1. mysql select符合查询_数据库select group by 和having语句 多表连接查询 复合查询

    1.SELECT --group by 子句 group by子句按照指定的列column_name对表数据进行分组 group by 后面跟的列也叫分组特性列 使用group by后,能选择的列   ...

  2. mysql 分组查询例子_分组查询GROUP BY用法例子详解

    GROUP BY在mysql中是分组查询了,那么你对于GROUP BY有了解多少呢,下面我们来看一篇关于GROUP BY使用例子,具体的细节如下所示. 在SQL中使用GROUP BY来对SELECT的 ...

  3. 阿里云mysql本地可以连接数据库_本地电脑连接阿里云服务器上搭建的MySQL数据库...

    一.前言 在上一篇博客:在CentOS 7 下安装mysql5.7 我们在阿里云服务器上安装好了MySQL 5.7.那么怎样可以使我们在本地的 navicat for MySQL工具上连接并进行数据库 ...

  4. mysql显示表已存在_「Docker系列」 如何在Docker中部署MySQL数据库?

    Docker为部署和测试应用程序和数据库提供了许多优势,这些应用程序和数据库是应用程序不可或缺的一部分,因此很值得学习如何在Docker容器中部署和运行数据库. 本文中,我们会重点关注如下重点: 为M ...

  5. 阿里巴巴mysql集群方案_云原生下,如何实现高可用的MySQL?

    简介: MySQL 作为当前比较受欢迎的关系型数据库(RDS),在云原生浪潮中仍然面临诸多挑战.如何用 Cloud Native 的设计原则,通过沙箱隔离.计算和数据的完全分离,实现低成本.可扩展.高 ...

  6. mysql云化方案_云原生下,如何实现高可用的MySQL?

    简介:MySQL 作为当前比较受欢迎的关系型数据库(RDS),在云原生浪潮中仍然面临诸多挑战.如何用 Cloud Native 的设计原则,通过沙箱隔离.计算和数据的完全分离,实现低成本.可扩展.高可 ...

  7. mysql 什么不能用别名_[转]为何group by后面不能使用别名(除MySQL)

    同事工做中遇到一个问题:mysql select   count(billingdate),to_char(billingdate,'YYYYmm') monthsql from tu_tradeor ...

  8. myftpadmin+proftpd+mysql架设ftp服务器_[教程]在CentOS7上配置 FTP服务器 Proftpd 支持 MySQL 虚拟用户加密认证以及磁盘限额(Quota)...

    有一些很古老的教程,一般都是走编译安装路线的,本文是教你不需要编译,而且随时都可以跟随 CentOS 升级 Proftpd 到最新版本,以避免可能的漏洞攻击.利用 Proftpd 现成的配置以及设置好 ...

  9. mysql 运行sql 编码_关于解决运行 sql 文件时, 找不到 MySQL 默认编码 utf8mb4 的问题...

    关于解决运行 sql 文件时, 找不到 MySQL 默认编码 utf8mb4 的问题 本人小白一名, 最近碰到了一个问题, 在 navicat 导入 MySQL 文件时, 报出 MySQL 找不到 u ...

最新文章

  1. android的数据存储方式有哪几种方式,Android存储数据的5种方式
  2. Oracle数据类型(转)
  3. 模拟键盘 键盘虚拟代码
  4. 【并查集】【图论】【最小生成树】剑鱼行动(ssl 1618)
  5. Introducing the ClearGLASS App on ClearOS
  6. JavaScript开发中几个常用知识点总结
  7. iOS Dev (60) 怎样实现 UITextView 中的 placeHolder
  8. 深入理解Java中的IO
  9. ThreadPoolExecutor执行任务,异常日志缺失问题
  10. 剑指offer——面试题51:数组中重复的数字
  11. win10企业版打开自带截图工具
  12. 如何在FL Studio中对整首歌曲音量进行调整
  13. 软件项目开发流程以及人员职责,软件工程中五种常用的软件开发模型整理
  14. cad插件_CAD插件坐标标注安装教程
  15. B2B网站平台建设:优势、功能、模块三大方向解析
  16. android之框架xUtils介绍
  17. Ubuntu18.04 U盘安装和分区方案
  18. 用python计算圆柱体积
  19. 【渝粤题库】广东开放大学 标准化专业英语 形成性考核
  20. Hive自定义函数报错10014 :No matching method for class

热门文章

  1. [题解]Codeforces Round #519 - B. Lost Array
  2. React Native中pointerEvent属性
  3. java中GET方式提交和POST方式提交
  4. HDU4506 小明系列故事——师兄帮帮忙
  5. 多系统通讯-DotNetMQ
  6. xcode7.1 安装不了Alcatraz怎么办.看这里
  7. 高性能的MySQL(2)慢查询
  8. [Andriod官方训练教程]保存数据之保存键-值对的集合
  9. 转 alsa录音放音执行流程详解
  10. TCp传输粘包问题