我有一个带有分区键(pkey)集群键(文件类型、状态、时间)的cassandra表feedcount。我需要一个图表的数据,我需要显示
总数:100
通过:80
失败:20
我该如何有效地查询上表。
查询count all for total as count()&passed as:count(),其中status=“passed”,然后以编程方式计算failed as failed=total-passed;
总计= select count(*) from FeedCount where Pkey='any';
通过= select count(*) from FeedCount where Pkey='any' and filetype ='' and status =true'
查询给定文件类型的状态并计算总计,即通过+失败=总计。
通过= select count(*) from FeedCount where Pkey='any' and filetype ='' and status =true'
失败= select count(*) from FeedCount where Pkey='any' and filetype ='' and status =false'
重点是检查所有行的计数是有效的还是仅仅用第二个查询来查找总数?
1条答案
按热度按时间inkz8wg91#
imho,这两种方法之间应该没有太大的区别,因为你基本上阅读了所有的数据-你只有两个变量
status
字段,这样就可以有效地读取第二种情况下的所有数据。我能想象到的唯一不同是在第一种情况下
select count(*) from FeedCount where Pkey='any';
,而在第二种情况下select count(*) from FeedCount where Pkey='any' AND filetype = '';
,如果有多个文件类型,则结果不相同。