替代计划数不同
回答
尝试GROUP BY
作为一个子查询和COUNT()
从外部查询。它会达到相同的结果。
SELECT COUNT(*)
FROM
(
SELECT Col1
FROM Table
GROUP BY Col1
) tbl
我同意Damien_The_Unbeliever在他对这个问题的评论。 查看执行计划以找出性能不佳的原因(例如缺少索引等)。 SQL是一种声明性语言,数据库引擎会创建一个物理执行计划来确定查询的执行方式。在很多情况下,即使您为相同的目标尝试使用不同的SQL语法,执行计划也是一样的。我已经执行了两个查询(这一个和原始的DISTINCT),我得到了他们两个相同的执行计划(所以他们之间没有性能差异)。 – saso
@saso:我当然同意Damien的观点,但我只是向OP展示了他提出的查询的替代方案。 – Edper
你说得对。我的评论实际上是针对原始海报的,因为我相信他正在错误的“地方”寻找解决问题的方法。对不起,如果不清楚。 – saso
Select count(col1) from table GROUP BY col1
该查询返回不同的数据。 OP要计算列中不同值的数量(标量值),则查询返回其他值:每个不同col1值的记录计数,例如,某个col1值在表格中出现多少次。 – saso
试试这个
SELECT COUNT(Col1)
FROM (SELECT ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col1) As RNO, Col1
FROM Table_Name)
WHERE RNO = 1
- 1. tf.floor的替代计划
- 2. 替代计划的append()
- 3. 替代计划“为” -loop
- 4. 替代计划表行动
- 5. 替代计划中的R
- 6. 替代计划的onclick window.location的
- 7. 替代计划DBMS_METADATA.GET_DLL Oracle 8i中
- 8. 替代计划任务的cron
- 9. 计划任务PHP替代方案
- 10. 替代计划的showModalDialog在FF和Chrome
- 11. 替代计划中的其余部分?
- 12. 迭代计划
- 13. Django:替代计数()
- 14. 计划替换问题
- 15. 下划线不替代变量
- 16. 替代计划给这个代码PHP棉短绒
- 17. Loadrunner代理计划
- 18. 把下划线代替它
- 19. 下划线代替在JavaScript
- 20. 替代使用不同的参数
- 21. 计划在代表法不跳
- 22. 计划作业调度不同月份
- 23. 不同的输出当单步计划
- 24. sp_execute选择不同的查询计划
- 25. 不同的计划任务的行为
- 26. Postgres解释计划是不同的
- 27. 同义词表的替代设计?
- 28. 计划整数
- 29. 计划程序来替代元素在对
- 30. 计划显示随机的符号代替文字
但是......你......显然......要......计数......不同的值。为什么你想避免'DISTINCT'? –
使用截然不同的性能问题。 –
那么当时的团队呢? – Edper