最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何在SQL中通过COUNT(DISTINCT)实现多字段去重计数
时间:2026-07-10 10:38:45 编辑:袖梨 来源:一聚教程网
MySQL 8.0+原生支持COUNT(DISTINCT col1, col2),而PostgreSQL、SQL Server等数据库不支持该语法,因其将DISTINCT视为单值修饰符;PostgreSQL需用COUNT(DISTINCT (col1, col2))行构造器,SQL Server则必须用子查询SELECT COUNT(*) FROM (SELECT DISTINCT col1, col2 FROM t) AS tmp。
为什么 COUNT(DISTINCT col1, col2) 在 MySQL 里能用,但在 PostgreSQL 和 SQL Server 里报错?
因为标准 SQL 不支持 COUNT(DISTINCT col1, col2) 这种多列写法——只有 MySQL(8.0+)和 SQLite 原生支持。PostgreSQL、SQL Server、Oracle 都会直接抛出 ERROR: syntax error at or near "," 或类似提示。
本质是:这些数据库把 DISTINCT 当作单值修饰符,不接受元组级去重语义。MySQL 是特例,它把 (col1, col2) 解析为一个复合表达式,等价于 COUNT(DISTINCT CONCAT(col1, '
相关文章
- 诛仙世界云若·梦影游仙新时装怎么获得 07-29
- 检疫区最后一站灭鼠者成就如何完成 07-29
- 蚂蚁森林神奇海洋2026年1月26日答案 07-29
- 三角洲行动长弓溪谷2.2日密码是多少 07-29
- html-anything 怎么安装?Codex/Claude Code 本地 HTML 编辑器教程 07-29
- Gardenin新滤镜成就如何解锁 07-29