mysql - 计算不同的值多个 col

标签 mysql count distinct

我有这张 table (模型——不是 SQL 中的表,所有的键都连接到一个真实的表,但我需要计算这个模型中存在的键。)

key1   key2  key 3
v1     d1    t1
v2     d2    t1
v3     d1    t4
v1     d3    t8
v1     d2    t4

需要返回结果

key1 v1 3
key1 v2 1
key1 v3 1
key2 d1 2

测试 fiddle http://sqlfiddle.com/#!9/c102f

我无法一一选择所有键,因为键数 = 79 和行数 = 1 115 260

一个一个的选择过程需要2分钟

最佳答案

您不能在单个 select 语句中对单独的列进行分组,因为第一组会影响第二组,依此类推。

除了一一选择,别无他法,但是 如果您只想将所有内容合并为一个结果,您可以使用 union

(select 'key1' AS column_origin, key1, count(key1) from TestTable group by key1)
union all
(select 'key2', key2, count(key2) from TestTable group by key2)
union all
(select 'key3', key3, count(key3) from TestTable group by key3);

关于mysql - 计算不同的值多个 col,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343190/

相关文章:

mysql - 在 wamp 中移动一个数据库而不是整个目录?

ruby-on-rails-3 - Rails 3 按孙子计数的订单记录

mysql - 在 MySQL 中,如何显示 GROUP BY 计数大于 1 的所有结果?

sql - 计算字段中唯一值的实例

php - 通过PHP上传多个文件并将信息发布到MYSQL数据库

php - 为什么这个 SQL 查询没有返回正确的行?

MySQL:从每组中选择最好的,但不重复

php - MySQL 按随机顺序但显示不同的前 5 个结果?

excel - 计算两列连接的唯一组合

php - mysql 中 csv 批量插入的限制