mysql group by over,PostgreSQL相当于MySQL GROUP BY
反向标记是一种非标准的MysqL事物.使用规范的双引号引用标识符(也可以在MysqL中引用).也就是说,如果您的表实际上被命名为“MY_TABLE”(全部大写).如果你(更明智地)将其命名为my_table(全部小写),那么你可以删除双引号或使用小写.
另外,我使用ct而不是count作为别名,因为使用函数名作为标识符是不好的做法.
简单的案例
这适用于Postgresql 9.1:
SELECT *,count(id) ct
FROM my_table
GROUP BY primary_key_column(s)
ORDER BY ct DESC;
它需要GROUP BY子句中的主键列.结果与MySQL查询相同,但ct将始终为1(如果id为NULL,则为0) – 无法查找重复项.
按主键列以外的分组
如果你想按其他列分组,事情会变得更复杂.此查询模仿MySQL查询的行为 – 您可以使用*.
SELECT DISTINCT ON (1,some_column)
count(*) OVER (PARTITION BY some_column) AS ct,*
FROM my_table
ORDER BY 1 DESC,some_column,id,col1;
这是因为DISTINCT ON(特定于Postgresql),如DISTINCT(sql-Standard),在窗口函数count(*)OVER(…)之后应用. Window functions(使用OVER子句)需要Postgresql 8.4或更高版本,并且在MysqL中不可用.
适用于任何表,无论主要或唯一约束.
DISTINCT ON和ORDER BY中的1只是简写,用于引用SELECT列表中项目的序号.
这个密切相关答案的更多细节:
count(*)与count(id)
如果您正在寻找重复项,那么使用count(*)比使用count(id)更好.如果id可以为NULL,则存在细微差别,因为不计算NULL值 – 而count(*)计算所有行.如果id被定义为NOT NULL,则结果是相同的,但count(*)通常更合适(并且也更快).
mysql group by over,PostgreSQL相当于MySQL GROUP BY相关推荐
- mysql 什么不能用别名_[转]为何group by后面不能使用别名(除MySQL)
同事工做中遇到一个问题:mysql select count(billingdate),to_char(billingdate,'YYYYmm') monthsql from tu_tradeor ...
- mysql mgr简介_mysql8.0初探:(二)MySQL Group Replication-MGR集群简介
mysql8.0初探:(二)MySQL Group Replication-MGR集群简介 发布时间:2020-06-12 23:59:17 来源:51CTO 阅读:49832 作者:arthur37 ...
- oracle rds 运维服务_从运维的角度分析使用阿里云数据库RDS的必要性–你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库...
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- MySQL之算术表达式、聚合函数及GROUP BY 与 HANVING 等函数的应用
一.MySQL的算术表达式 算术表达式就是加减乘除的运算过程,主要是对一条数据中出现的数字进行统计和运算. 首先,有一张数据表,如下: mysql> select * from test_sco ...
- pg函数同步数据到mysql_将数据从PostgreSQL复制到MySQL
我目前有一个PostgreSQL数据库,因为我们使用的其中一件软件仅支持该特定数据库引擎.然后,我有一个查询,该查询汇总了应用程序中的数据并将其拆分为更有用的格式. 在我的MySQL数据库中,我有一个 ...
- php postgresql mysql_PostgreSQL与MySQL比较(转)
Mysql 使用太广泛了,以至于我不得不将一些应用从mysql 迁移到postgresql, 很多开源软件都是以Mysql 作为数据库标准,并且以Mysql 作为抽象基础的,但是具体使用过程中,发现M ...
- mysql——启动服务问题Found option without preceding group in config file
一.问题描述 最近笔记本电脑带出去办公了一趟,回来就发现navicat连接不上mysql了(myslq解压版安装的),一脸懵逼,都不知道啥原因,一头雾水. navicat中显示错误是: 2003 ca ...
- MySQL对数据表进行分组查询(GROUP BY)
MySQL对数据表进行分组查询(GROUP BY) GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组.字段中值相等的为一组.基本的语法格式如下: GROUP BY 属性名 [HAVI ...
- MySQL报错 SELECT list is not in GROUP BY clause and contains nonaggregated column...
MySQL报错 SELECT list is not in GROUP BY clause and contains nonaggregated column- 原因: 在mysql5.7以上的版本中 ...
最新文章
- oracle 条件动态视图,oracle最重要的9个动态性能视图
- 记一个鼠标略过时候的css动画
- php curl 发送https请求失败,php的curl扩展无法发起https请求
- IE6 下图片少一块
- 轻松记账工程冲刺第二天
- how is native onClick event passed to application handler
- 机器真的已经战胜人类医生了吗?医学AI标题党文章中的三大陷阱
- C和指针之动态内存分配之输入很多整数进行排序
- java thread等特,进阶之路|奇妙的Thread之旅
- foxmail占cpu 100%解决办法
- java 远程怎么改bug_java struts2 远程执行任意java代码bug漏洞修复
- 三种新型DDoS反射攻击出现
- 什么是Servlet容器?
- 迷茫的剑客----网站设计师! -----静水流深
- (转)War3 地图编辑器脚本接口说明
- Office EXCEL如何批量把以文本形式存储的数字转换为数字
- 用python识别微信消息界面聊天输入框位置
- java能测圈复杂度_[Java教程]圈复杂度
- 主机连接校园网,ubuntu虚拟机桥接模式上不了网
- 【Redis源码剖析】 - Redis IO操作之rio