mysql group by 别名_[转]为什么group by后面不能使用别名(除MySQL)
同事工作中遇到一个问题:
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)相关推荐
- mysql select符合查询_数据库select group by 和having语句 多表连接查询 复合查询
1.SELECT --group by 子句 group by子句按照指定的列column_name对表数据进行分组 group by 后面跟的列也叫分组特性列 使用group by后,能选择的列 ...
- mysql 分组查询例子_分组查询GROUP BY用法例子详解
GROUP BY在mysql中是分组查询了,那么你对于GROUP BY有了解多少呢,下面我们来看一篇关于GROUP BY使用例子,具体的细节如下所示. 在SQL中使用GROUP BY来对SELECT的 ...
- 阿里云mysql本地可以连接数据库_本地电脑连接阿里云服务器上搭建的MySQL数据库...
一.前言 在上一篇博客:在CentOS 7 下安装mysql5.7 我们在阿里云服务器上安装好了MySQL 5.7.那么怎样可以使我们在本地的 navicat for MySQL工具上连接并进行数据库 ...
- mysql显示表已存在_「Docker系列」 如何在Docker中部署MySQL数据库?
Docker为部署和测试应用程序和数据库提供了许多优势,这些应用程序和数据库是应用程序不可或缺的一部分,因此很值得学习如何在Docker容器中部署和运行数据库. 本文中,我们会重点关注如下重点: 为M ...
- 阿里巴巴mysql集群方案_云原生下,如何实现高可用的MySQL?
简介: MySQL 作为当前比较受欢迎的关系型数据库(RDS),在云原生浪潮中仍然面临诸多挑战.如何用 Cloud Native 的设计原则,通过沙箱隔离.计算和数据的完全分离,实现低成本.可扩展.高 ...
- mysql云化方案_云原生下,如何实现高可用的MySQL?
简介:MySQL 作为当前比较受欢迎的关系型数据库(RDS),在云原生浪潮中仍然面临诸多挑战.如何用 Cloud Native 的设计原则,通过沙箱隔离.计算和数据的完全分离,实现低成本.可扩展.高可 ...
- mysql 什么不能用别名_[转]为何group by后面不能使用别名(除MySQL)
同事工做中遇到一个问题:mysql select count(billingdate),to_char(billingdate,'YYYYmm') monthsql from tu_tradeor ...
- myftpadmin+proftpd+mysql架设ftp服务器_[教程]在CentOS7上配置 FTP服务器 Proftpd 支持 MySQL 虚拟用户加密认证以及磁盘限额(Quota)...
有一些很古老的教程,一般都是走编译安装路线的,本文是教你不需要编译,而且随时都可以跟随 CentOS 升级 Proftpd 到最新版本,以避免可能的漏洞攻击.利用 Proftpd 现成的配置以及设置好 ...
- mysql 运行sql 编码_关于解决运行 sql 文件时, 找不到 MySQL 默认编码 utf8mb4 的问题...
关于解决运行 sql 文件时, 找不到 MySQL 默认编码 utf8mb4 的问题 本人小白一名, 最近碰到了一个问题, 在 navicat 导入 MySQL 文件时, 报出 MySQL 找不到 u ...
最新文章
- android的数据存储方式有哪几种方式,Android存储数据的5种方式
- Oracle数据类型(转)
- 模拟键盘 键盘虚拟代码
- 【并查集】【图论】【最小生成树】剑鱼行动(ssl 1618)
- Introducing the ClearGLASS App on ClearOS
- JavaScript开发中几个常用知识点总结
- iOS Dev (60) 怎样实现 UITextView 中的 placeHolder
- 深入理解Java中的IO
- ThreadPoolExecutor执行任务,异常日志缺失问题
- 剑指offer——面试题51:数组中重复的数字
- win10企业版打开自带截图工具
- 如何在FL Studio中对整首歌曲音量进行调整
- 软件项目开发流程以及人员职责,软件工程中五种常用的软件开发模型整理
- cad插件_CAD插件坐标标注安装教程
- B2B网站平台建设:优势、功能、模块三大方向解析
- android之框架xUtils介绍
- Ubuntu18.04 U盘安装和分区方案
- 用python计算圆柱体积
- 【渝粤题库】广东开放大学 标准化专业英语 形成性考核
- Hive自定义函数报错10014 :No matching method for class