一尘不染

SQL:计算每列中不同值的数量

sql

我需要一个查询,该查询将返回一个表,其中每个列是另一个表的列中不同值的计数。

我知道如何在一列中计算不同的值:

select count(distinct columnA) from table1;

我想我可以把它变成一个很长的select子句:

select count(distinct columnA), count(distinct columnB), ... from table1;

但这不是很优雅,并且经过硬编码。我希望有一些更灵活的方法。


阅读 163

收藏
2021-05-23

共1个答案

一尘不染

我感谢所有答复。我认为在这种情况下最适合我的解决方案如下(从不知道该表的外部程序中计算出该表的每个列中不同值的数量)(该表的名称除外):

运行“ describe table1”,然后从结果中拉出列名。

遍历列名并创建查询以计算每列中的不同值。该查询将类似于“从表1中选择count(distinct columnA),count(distinct
columnB),…”。

2021-05-23