反向标记是一种非标准的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相关推荐

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

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

  2. mysql mgr简介_mysql8.0初探:(二)MySQL Group Replication-MGR集群简介

    mysql8.0初探:(二)MySQL Group Replication-MGR集群简介 发布时间:2020-06-12 23:59:17 来源:51CTO 阅读:49832 作者:arthur37 ...

  3. oracle rds 运维服务_从运维的角度分析使用阿里云数据库RDS的必要性–你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库...

    开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...

  4. MySQL之算术表达式、聚合函数及GROUP BY 与 HANVING 等函数的应用

    一.MySQL的算术表达式 算术表达式就是加减乘除的运算过程,主要是对一条数据中出现的数字进行统计和运算. 首先,有一张数据表,如下: mysql> select * from test_sco ...

  5. pg函数同步数据到mysql_将数据从PostgreSQL复制到MySQL

    我目前有一个PostgreSQL数据库,因为我们使用的其中一件软件仅支持该特定数据库引擎.然后,我有一个查询,该查询汇总了应用程序中的数据并将其拆分为更有用的格式. 在我的MySQL数据库中,我有一个 ...

  6. php postgresql mysql_PostgreSQL与MySQL比较(转)

    Mysql 使用太广泛了,以至于我不得不将一些应用从mysql 迁移到postgresql, 很多开源软件都是以Mysql 作为数据库标准,并且以Mysql 作为抽象基础的,但是具体使用过程中,发现M ...

  7. mysql——启动服务问题Found option without preceding group in config file

    一.问题描述 最近笔记本电脑带出去办公了一趟,回来就发现navicat连接不上mysql了(myslq解压版安装的),一脸懵逼,都不知道啥原因,一头雾水. navicat中显示错误是: 2003 ca ...

  8. MySQL对数据表进行分组查询(GROUP BY)

    MySQL对数据表进行分组查询(GROUP BY) GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组.字段中值相等的为一组.基本的语法格式如下: GROUP BY 属性名 [HAVI ...

  9. 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以上的版本中 ...

最新文章

  1. oracle 条件动态视图,oracle最重要的9个动态性能视图
  2. 记一个鼠标略过时候的css动画
  3. php curl 发送https请求失败,php的curl扩展无法发起https请求
  4. IE6 下图片少一块
  5. 轻松记账工程冲刺第二天
  6. how is native onClick event passed to application handler
  7. 机器真的已经战胜人类医生了吗?医学AI标题党文章中的三大陷阱
  8. C和指针之动态内存分配之输入很多整数进行排序
  9. java thread等特,进阶之路|奇妙的Thread之旅
  10. foxmail占cpu 100%解决办法
  11. java 远程怎么改bug_java struts2 远程执行任意java代码bug漏洞修复
  12. 三种新型DDoS反射攻击出现
  13. 什么是Servlet容器?
  14. 迷茫的剑客----网站设计师! -----静水流深
  15. (转)War3 地图编辑器脚本接口说明
  16. Office EXCEL如何批量把以文本形式存储的数字转换为数字
  17. 用python识别微信消息界面聊天输入框位置
  18. java能测圈复杂度_[Java教程]圈复杂度
  19. 主机连接校园网,ubuntu虚拟机桥接模式上不了网
  20. 【Redis源码剖析】 - Redis IO操作之rio

热门文章

  1. Hive的基本操作-分组和多表连接
  2. 字节输入流_InputStream类FileInputStream类介绍
  3. Spring Boot整合Spring Data Redis-提取Redis的链接参数
  4. 为元素绑定多个相同事件 绑定事件的另一种方式 复习 介绍 元素的事件绑定
  5. redis命令-key操作
  6. linux相关函数,linux学习-信号相关函数
  7. 为什么Segment会从微服务退回单体架构?
  8. 阿里专家分享:企业级大数据轻量云实践
  9. Linux watch 监控系统状态
  10. Mysql修改存储过程相关权限问题