首页
学习
活动
专区
工具
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"列进行分组,然后统计每个分组中的订单数量。

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

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

相关·内容

领券