如何解决如何在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行:
- 订阅者人数
- 不包含订阅者的人数
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 举报,一经查实,本站将立刻删除。