我有表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
,因此您可以对 case
表达式执行 count
:
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
关于mysql - 如何在 mysql 中使用 COUNT() 和 where ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63981837/