HELO
我有一个很大的问题,我有一个大约50M行的表。在这张表中,我有3列:位置,人物代码和日期。它看起来像这样:
date person location
2012-04-07 837592 0
2012-04-08 892857 6
2012-04-06 726474 1
2012-04-03 204857 4
2012-04-08 516485 9
2012-04-07 405867 0
所以一个人可以在同一天的不同地点或不同日期的同一地点。
现在我的问题是我需要一个类似的查询:
SELECT COUNT (DISTINCT person) FROM my_table WHERE location = '0';
所以基本上我必须计算在不同时间在一个地方的不同的光子。 如果我以前面描述的方式执行此操作,则查询大约需要20分钟。
所以我问是否有更快的方法呢?
答案 0 :(得分:0)
试试这个::
SELECT person, COUNT (*) FROM my_table WHERE location = '0' group by person;
这将提高性能,接下来你可以做索引使用的列。
答案 1 :(得分:0)
试试这个
SELECT COUNT (*) FROM my_table WHERE location = '0' GROUP BY person;