首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql查询计数()限制为8

mysql查询计数()限制为8
EN

Stack Overflow用户
提问于 2015-11-03 11:14:21
回答 3查看 87关注 0票数 0

是否有其他限制结果计数的查询(附件)。在附加的屏幕截图中,有十项计数的结果,我想知道是否有办法限制或限制计数到8,而不管每个移动电话的结果如何?谢谢

更新:

需要更新我的问题:我需要得到最新的8个移动电话号码在这个查询。见附件:

在结果中,一个手机号码7824有10条记录。我的目标是获得每个代码的总票数,但限制在每个移动号码8票。

EN

回答 3

Stack Overflow用户

发布于 2015-11-03 11:16:59

而不是:

代码语言:javascript
复制
select x.* from 

做:

代码语言:javascript
复制
select case when x.count > 8 then 8 else x.count end as count, 
       x.mobile_number, 
       x.code
票数 1
EN

Stack Overflow用户

发布于 2015-11-03 11:17:16

使用以下条件:

代码语言:javascript
复制
select if(count(a.id)>8,8,count(a.id)) as count
票数 1
EN

Stack Overflow用户

发布于 2015-11-03 11:57:28

不需要子查询,您可以按下面的主查询获得-

代码语言:javascript
复制
SELECT IF(COUNT(a.id) > 8, 8, COUNT(a.id)) AS 'count', a.mobile_number, a.shortcode AS 'code'
FROM tbl_votes AS a 
INNER JOIN tbl_members AS b ON b.mobile_number = a.mobile_number 
WHERE a.possition_id = 3 
GROUP BY a.mobile_number;

更新答案按更新查询:

代码语言:javascript
复制
SELECT t.id, t.mobile_number, t.shortcode AS 'code' 
FROM (SELECT t.id, t.mobile_number, t.shortcode,
               CASE 
                 WHEN @category != t.mobile_number THEN @rownum := 1 
                 ELSE @rownum := @rownum + 1 
               END AS rank,
               @category := t.mobile_number AS var_category
          FROM tbl_votes t
          JOIN tbl_members AS b ON b.mobile_number = t.mobile_number 
          JOIN (SELECT @rownum := NULL, @category := '') r     
      ORDER BY t.mobile_number,t.id DESC) X
      WHERE x.rank<=8;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33497715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档