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

标签 sql sql-server

我想进行一个查询,选择类别名称并计算每个类别中广告的最大数量(事件),我已经这样做了:

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)

关于sql - 选择类别并计算其中的广告数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18002080/

相关文章:

php - 计算 View 中的结果数

sql - 收到此错误 "first argument is not an open RODBC channel"

sql-server - 检查SQL Server中是否存在表

SQL Server面试查询索引?

mysql - 适用于主要数据库的更新语法

sql-server - 在批处理文件中使用 SQLCMD,如何解析响应并检查错误?

sql - 根据日期计算某行最大值与其他行的差值

sql - 分别计算每列的不同值

C# 和 SQLServer 标准化大量 URL

sql - MS SQL 2005 表到 XML