根据MySQL的记录总百分比选择行

时间:2011-06-29 06:47:57

标签: mysql

我不确定我是否放了正确的标题,会很高兴主持人改变它。这就是我想要的: 假设我有一个包含3列的表

Id |   Name      |    campaignid
-----------------------------
1. |    John.    |     1
----------------------------
2  |    Peter.   |     2
---------------------------
3. |    Martin.  |     3
----------------------------
4. |    Sarah.   |     2
----------------------------
5. |    Jessica. |     3
----------------------------
6. |    Parker.  |     3

现在实际上我将拥有大约1000个不同的campaignid的一百万条记录,同时我只能处理3000条记录,所以我想选择3000条记录并处理它们,然后获得另外3000条记录并处理它们,所以等等。 当我从数据库中选择3000条记录时,我想根据总记录中存在的campaignid的百分比来获取行。对于上述示例中的ex,竞争者3存在50%,2是33.33%,1是17.77%。现在,如果这也是一百万条记录的汇总,我必须从中选择3000条记录,那么竞选标识3应该是1500次,竞选标识2应该是999次,剩下的应该是广告系列标识1,即50%,分别为33.3%和17%。

请有人帮我解决这个问题。我正在使用Mysql数据库。

1 个答案:

答案 0 :(得分:0)

您可以尝试MySQL的FOUND_ROWS()功能。例如:

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
    -> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();

第二个SELECT返回一个数字,表示如果没有LIMIT子句,第一个SELECT将返回多少行。