繁体   English   中英

选择类别并计算其中的广告

[英]Select Categories and count the Ads inside

我要查询一个选择类别名称并计算每个类别中活动广告的最大数量的查询,我已经这样做了:

SELECT
cat.cat_id,
cat.cat_desc,
COUNT(ad_id) AS cat_total_ads
FROM 
tab_categories AS cat LEFT JOIN
tab_ads AS ads ON ads.cat_id = cat.cat_id
WHERE
cat_active = @cat_active AND
cat_deleted = @cat_deleted
GROUP BY
cat_desc, cat.cat_id

该查询也在计算无效广告。 如何将无效广告的值设为0?

实现此目的的一种方法是使用CASE语句的组合来确定是否要计算该项和SUM函数。

例如

SUM(CASE WHEN Active THEN 1 ELSE 0 END)

SUM(CASE .....然后1 else 0 end)作为colName应该为你做!

尝试此操作,我没有要重新创建的表以进行测试,但是此操作或类似操作应该起作用。

select 
  cat.cat_id,
  cat.cat_desc,
  count(ad_id) as Total,
  sum(case when ad_id= 0 then 1 else 0 end) as 'ad_id'

from
  tab_categoriesAS cat LEFT JOIN
tab_ads AS ads ON ads.cat_id = cat.cat_id
WHERE
cat_active = @cat_active AND
cat_deleted = @cat_deleted
GROUP BY
cat_desc, cat.cat_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM