我经常需要计算表中不同记录的数量。但是,在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;
答案 0 :(得分:0)
如果你不想使用它:
select count(*) as countdistinctrows
from (
select distinct * from t
) x;
我能想到的唯一选择是手动指定所有列名:
select count(distinct id, col1, col2, col3, ...)
from t;