最新下载
热门教程
- 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, '
相关文章
- 非主流时尚爱情图片 11-03
- 拼多多商家登录-拼多多商家网页版登录入口 11-03
- DeepSeek-网页版官方入口 11-03
- qq邮箱网页版登录入口-qq邮箱官网直接访问地址 11-03
- 哔咔漫画官网入口网页版最新-哔咔漫画网页版登录直达地址 11-03
- 超星学习通官网登录-学习通网页版官方入口 11-03