表中不同记录(行)的数量

时间:2016-04-28 07:16:08

标签: mysql sql

我经常需要计算表中不同记录的数量。但是,在MySQL中都没有

select count(distinct *) from t;

,也不

select count(distinct t.*) from t;

的工作。我知道我可以通过

来解决这个问题
select count(*) as countdistinctrows
from (
  select distinct * from t
) x;

但这很难看。有没有办法要求不同行的数量?顺便说一句,

select distinct count(*) from t;

不是答案,因为那时不同的是应用于表中的行数,因此给出相同的

select count(*) from t;

1 个答案:

答案 0 :(得分:0)

如果你不想使用它:

select count(*) as countdistinctrows
from (
  select distinct * from t
) x;

我能想到的唯一选择是手动指定所有列名:

select count(distinct id, col1, col2, col3, ...)
from t;