底层逻辑上:

    • DISTINCT是去重删除
    • GROUP BY是分组合并

    测试结果:

    • 重复度高时,DISTINCT快
    • 重复度低时,GROUP BY快

    另外,DISTINCT和GROUP BY的count记录数有区别:

    • SELECT count(DISTINCT xx) FROM tb; — 会计算空值NULL
    • SELECT xx,count(1) FROM tb GROUP BY xx; — 不会计算空值NULL