计算不同的值多个col

时间:2016-05-20 09:37:23

标签: mysql count distinct

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

def optional(x):
    if x:
        yield x

for x in optional(some_func()):
    print(x)

结果需要返回

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

小提琴试试 http://sqlfiddle.com/#!9/c102f

我无法逐个选择所有按键,因为按键数= 79且行数= 1 115 260

逐个选择过程需要2分钟

1 个答案:

答案 0 :(得分:1)

您不能在单个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);