`

简单case when用法

 
阅读更多

例子一:

有一个表,数据如:

mysql> select * from tid_action;

+----+------+-------------+

| id | tid  | action      |

+----+------+-------------+

|  1 |   47 | restorePost |

|  2 |   47 | restorePost |

|  3 |   47 | restorePost |

|  4 |   47 | replyTopic  |

|  5 |   47 | replyTopic  |

|  6 |   47 | deletePost  |

|  7 |   48 | replyTopic  |

|  8 |   48 | replyTopic  |

|  9 |   48 | restorePost |

| 10 |   48 | deletePost  |

| 11 |   48 | deletePost  |

| 12 |   48 | deletePost  |

| 13 |   48 | restorePost |

+----+------+-------------+

13 rows in set (0.01 sec)

 

现在要按tid 分组统计,每个tid的action类型replyTopic  、restorePost 、deletePost  分别有多少行。

sql语句:

SELECT tid,
  sum(CASE WHEN ACTION='replyTopic' THEN 1 ELSE 0 END ) replyCount,
  sum(CASE WHEN ACTION='restorePost' THEN 1 ELSE 0 END ) restoreCount,
  sum(CASE WHEN ACTION='deletePost' THEN 1 ELSE 0 END ) deleteCount
FROM tid_action
GROUP BY tid

 

 

查询结果:

+------+------------+--------------+-------------+

| tid  | replyCount | restoreCount | deleteCount |

+------+------------+--------------+-------------+

|   47 |          2 |            3 |           1 |

|   48 |          2 |            2 |           3 |

+------+------------+--------------+-------------+

2 rows in set (0.00 sec)

 

 

例子二:

有一个bbs7_activity_item表,主要字段如下,activityitemid是主键,STATUS=1表示审核通过的状态。



 

现在想创建一个新表,来统计总的人数和审核通过的人数,按照tid分组,简单写法:

 

CREATE TABLE activity_signUp_censored AS 
SELECT tid,sum(persons) signUpCount,
sum(CASE WHEN STATUS = 1 THEN persons ELSE 0 END) censoredCount
FROM bbs7_activity_item GROUP BY tid

 经验证,这个sql是正确的。

 

 

  • 大小: 18 KB
分享到:
评论

相关推荐

    case when和sum case when 写法及拼接字段

    `CASE WHEN` 提供了灵活的条件判断机制,而 `SUM CASE WHEN` 则使得对数据进行条件性聚合变得更加简单。结合字符串拼接功能,这些技术可以帮助我们在复杂的数据处理任务中更加高效地完成工作。在实际应用中,根据...

    Oracle_case_when_用法

    ### Oracle CASE WHEN 用法详解 #### 一、概述 在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`...

    oracle case when 语句的用法详解

    1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘2’ THEN ‘女’ ELSE ‘其他’ END –Case搜索函数 CASEWHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘2’ ...

    Case_When用法

    标题《Case_When用法》为我们提供了一个深入学习SQL中Case表达式使用方法的契机。在SQL中,Case表达式是一个条件分支结构,允许在查询中进行条件判断,并基于条件返回不同的结果。该表达式分为两种格式:简单Case...

    SQL Server中Case 的不同用法

    以下是对CASE关键字在SQL Server中不同用法的详细解释: 1. **在SELECT语句中的基本用法**: CASE表达式通常在SELECT语句中用来根据特定条件为数据列创建新的计算字段。例如,你可以根据书籍的价格范围给价格打...

    SQL case_when用法

    本文档介绍了SQL中case...when的用法。

    SQL中Case语句用法讨论_BJ

    `Case`语句有两种基本形式:简单`Case`表达式和搜索`Case`表达式。 #### 一、简单`Case`表达式 简单`Case`表达式通常用于基于列值的条件判断,其语法结构如下: ```sql CASE WHEN <condition1> THEN WHEN ...

    c#中switch case的用法实例解析

    在本实例中,我们看到`switch`与`case`结合使用,来实现一个简单的收银付费小程序。下面我们将深入探讨`switch`和`case`的用法,并基于提供的代码片段进行详细解释。 首先,`switch`语句通常包含一个表达式,该...

    sql中的case用法

    SQL 中 Case 用法 Case 语句是 SQL 中一种强大的语句,用于根据不同的条件执行不同的操作。它可以用来实现复杂的逻辑操作,并且可以与其他 SQL 语句结合使用以实现更加复杂的查询。 SQL 中 Case 语句有两种格式:...

    sql case when exists not exists in not in

    在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...

    Sql_Case_When用法用例[参考].pdf

    Sql_Case_When用法用例[参考].pdf

    SQL__case_when_then_的用法

    SQL__case_when_then_的用法

    case when then语句用法

    该语句的执行过程是:将CASE后面表达式的值与各WHEN子句中的表达式的值进行比较,如果两者相等,则返回THEN后的表达式的值,然后跳出CASE语句,否则返回ELSE子句中的表达式的值。ELSE子句是可选项。当CASE语句中不...

    MySQL的CASE WHEN语句的几个使用实例

    在这个实例中,我们将深入理解如何使用CASE WHEN,并通过几个具体的例子来演示其用法。 首先,我们来看一个简单的使用CASE WHEN进行字符串替换的例子。在这个示例中,我们有一个名为sales的表,其中包含了category...

    MySQL性能优化的最佳21条经验

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,其性能优化对于任何依赖于它的应用程序来说都是至关重要的。以下是从"MySQL性能优化的最佳21条经验"中提取的一些关键知识点: 1. **索引优化**:索引是提升查询...

    CASE的用法 (Transact-SQL)

    ### CASE的用法 (Transact-SQL) #### 概述 `CASE` 是 Transact-SQL 中一个非常重要的关键字,用于根据不同的条件返回不同的结果。它支持两种主要的格式:简单表达式和搜索表达式。这两种格式都能有效地帮助开发者...

    SqlServer使用 case when 解决多条件模糊查询问题

    在SQL Server中,`CASE WHEN` 语句是一种强大的逻辑表达式,用于处理基于不同条件的复杂查询。在多条件模糊查询中,`CASE WHEN` 可以避免在...了解并熟练掌握`CASE WHEN` 的用法,可以提升SQL编程的灵活性和实用性。

    mysql存储过程之case语句用法实例详解

    简单CASE语句主要用于比较一个表达式(case_expression)与一系列预定义的值(when_expression)。基本语法如下: ```sql CASE case_expression WHEN when_expression_1 THEN commands WHEN when_expression_2 ...

    SQLsevrer CASE用法

    -- 简单 CASE 用法示例 CASE sex WHEN '1' THEN '男性' WHEN '2' THEN '女性' ELSE '未知' END ``` 这里,`CASE` 表达式根据 `sex` 列的值返回相应的性别名称。 #### 搜索 CASE 表达式 搜索 `CASE` 表达式则是...

Global site tag (gtag.js) - Google Analytics