首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

创建组合为"CASE WHEN“和"GROUP BY”的查询

"CASE WHEN"和"GROUP BY"是SQL查询语句中常用的两个关键字。

  1. "CASE WHEN"是用于在查询结果中根据条件进行条件判断和赋值的语句。它的语法结构如下:CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END
    • condition1、condition2等是条件表达式,可以是列名、常量或者其他表达式。
    • result1、result2等是满足对应条件时的返回结果。
    • ELSE result是可选的,表示当没有条件满足时的默认返回结果。

示例:假设有一个名为"orders"的表,包含"order_id"、"customer_id"和"order_status"等列,我们想根据"order_status"列的值进行分类统计订单数量,可以使用"CASE WHEN"语句:

代码语言:sql
复制

SELECT

代码语言:txt
复制
 CASE WHEN order_status = 'completed' THEN '已完成'
代码语言:txt
复制
      WHEN order_status = 'cancelled' THEN '已取消'
代码语言:txt
复制
      ELSE '其他'
代码语言:txt
复制
 END AS status,
代码语言:txt
复制
 COUNT(*) AS count

FROM

代码语言:txt
复制
 orders

GROUP BY

代码语言:txt
复制
 status;
代码语言:txt
复制

在上述示例中,根据"order_status"列的值进行条件判断,将不同的订单状态归类为"已完成"、"已取消"和"其他",然后使用"GROUP BY"对"status"列进行分组统计订单数量。

  1. "GROUP BY"是用于对查询结果按照一个或多个列进行分组的语句。它的语法结构如下:SELECT column1, column2, ... FROM table GROUP BY column1, column2, ...
    • column1、column2等是需要进行分组的列名。

示例:继续以上述示例为例,我们可以使用"GROUP BY"对"status"列进行分组统计订单数量:

代码语言:sql
复制

SELECT

代码语言:txt
复制
 CASE WHEN order_status = 'completed' THEN '已完成'
代码语言:txt
复制
      WHEN order_status = 'cancelled' THEN '已取消'
代码语言:txt
复制
      ELSE '其他'
代码语言:txt
复制
 END AS status,
代码语言:txt
复制
 COUNT(*) AS count

FROM

代码语言:txt
复制
 orders

GROUP BY

代码语言:txt
复制
 status;
代码语言:txt
复制

在上述示例中,使用"GROUP BY"对"status"列进行分组,然后统计每个分组中的订单数量。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 数据库(SQL)面试题,基础知识(超全面)[通俗易懂]

    第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。 第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在”A → B → C”的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系: 关键字段 → 非关键字段x → 非关键字段y

    03
    领券