微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在mysql中的哪里使用COUNT?

如何解决如何在mysql中的哪里使用COUNT?

我有pages (id,...)page_visits (id,page_id,is_subscribed)

page_visits表现在每一个page_id大约有200万行。

我需要创建一个查询,该查询获取每一页的访问和订阅计数。我的查询现在只吸引访问次数

SELECT page_id,COUNT(page_id) AS visits
FROM `page_visits`
WHERE `page_id` in (1,2)
GROUP BY `page_id`

但是如何在此处添加结果中的page_subscriptions列,以包含每一个page_id其中is_subscriped = 1的行数?

解决方法

count忽略了null,因此您可以对count表达式执行case

SELECT   page_id,COUNT(page_id) AS visits 
         COUNT(CASE is_subscribed WHEN 1 THEN 1 END) AS subscried_visits
FROM     page_visits
WHERE    page_id IN (1,2) 
GROUP BY page_id
,

只需使用var formData = new FormData(); formData.append('UserId','abc@abc.com'); formData.append('VisitId','28596'); formData.append('EvidenceCapturedDate','09/10/2019 13:28:20'); formData.append('EvidenceCategory','Before'); formData.append('EvidenceImage',{ uri: Platform.OS === 'android' ? `file:///${path}` : `/private${path}`,type: 'image/jpeg',name: 'image.jpg',}); axios({ url: UrlString.BaseUrl + UrlString.imageUpload,method: 'POST',data: formData,headers: { Accept: 'application/json','Content-Type': 'multipart/form-data' },}) .then(function (response) { console.log('*****handle success******'); console.log(response.data); }) .catch(function (response) { console.log('*****handle failure******'); console.log(response); }); 并按count(*)分组...

is_subscribed

每页您将获得2行:

  1. 订阅者人数
  2. 不包含订阅者的人数

select `page_id`,count(*) as visits,`is_subscribed` from `page_visits` group by `page_id`,`is_subscribed` 不会忽略空值

,

我建议:

select page_id,count(*) visits,sum(is_subscribed) page_subscriptions
from page_visits
where page_id in (1,2)
group by page_id

理论上:

  • 我希望page_id不可为空;如果是这样,count(*)count(page_id)

    更有效
  • is_subscribed似乎存储着0 / 1值-因此计算1的数量就等于对列求和;这比条件计数要有效得多

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。