在单个MySQL查询中获取所有列的不同计数

拉杰什

我试图在单个查询中获取所有列的不同计数。考虑下表。

COL1 | COL2 | COL3
A    | 5    | C
B    | 5    | C
C    | 5    | C
C    | 5    | C
D    | 7    | C

预期结果

DC_COL1 | DC_COL2 | DC_COL3     #DC - Distinct count
4       | 2       | 1

尽管使用有效的分组函数无法在单个查询(单个全表扫描)中获得上述结果(AFAIK),但在此可以进行哪些优化?

对每列触发单个查询可能会导致对每列进行全表扫描。尽管在对第一列进行非重复计数查询期间,整个表可能已经到达缓冲池,但是在大表上仍然是性能问题。

福帕斯

可以在单个表扫描中完成:

SELECT 
  COUNT(DISTINCT COL1) DC_COL1,
  COUNT(DISTINCT COL2) DC_COL2,
  COUNT(DISTINCT COL3) DC_COL3
FROM tablename

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在单个查询中获取 MySQL 中所有不同项的所有总和

Django查询以获取特定列的所有不同值的计数

Django查询以获取ArrayField列的所有不同值的计数

单个查询中的不同计数

django chart.js-查询以获取特定列的所有不同值的计数

从查询列表中的所有查询中获取计数

获取单个查询Mysql中各自id的计数

MYSQL查询以获取所有结果,其中一列在不同的组中多次出现并匹配特定条件

如何根据sql server中的where条件获取表中所有列的值的不同计数?

查询从具有附加约束的单个列中获取不同对

单个查询从具有不同列的多个表中获取记录

获取在同一 SELECT SQL 查询中获得的列中所有类型值的计数

如何在Mysql中的单个查询中为所有行插入一列数据?

从查询中获取所有月份,包括零计数

MySQL查询以获取所有在行中使用的不同字母

Mysql:获取两列中所有值的计数

单个mysql查询中的多个计数

SQL查询以计数所有表中的列

如何使用单个查询获取存储在不同变量中的多个表行的计数?

从大表中的所有列中获取数字计数

如何从MYSQL的一列不同值中获取计数

MYSQL-选择在1列中重复但在另一列中不同的所有行的计数

如何在PHP MySQL中的单个查询中获取相距10分钟的所有行?

每天获取所有不同ID的计数

查询以从3个不同的表中获取数据以获取具有计数的不同键

CloudWatch Insights查询-如何从计数中获取单个计数

使用mysql查询根据不同组获取product_id列的不同计数

获取psql中给定列的所有可能值的计数

如何从MySQL表的多个列中获取指定最小长度的所有不同单词?