sql - CASE WHEN 来自没有子查询的嵌套 CASE WHEN?
问题描述
如果订单有 2+ 个单位,这将创建一个片段:
CASE WHEN SUM(quantity) > 1 then '2+ Units' ELSE '1 Unit' END as qty_flag_total
我想创建仅计算特定产品类别的其他版本,因此仅对产品“自行车”的数量求和。
我有这个来总结产品“自行车”的数量:
SUM(CASE WHEN category = 'bike' THEN quantity END) AS qty_bike
但是想知道是否有一种干净的方法可以在此之上创建相同的标志,以确定数量是“1 个单位”还是“2+ 个单位”?
我只知道它在子查询中进行上述操作,然后使用 2+ 单元标志 CASE,但如果可能的话,希望从基表中完成所有操作。
解决方案
这是你想要的吗?
CASE WHEN SUM(CASE WHEN category = 'bike' THEN quantity END) > 1
THEN '2+ Bike Units'
ELSE '1 Bike Unit'
END AS qty_flag_bike
当根本没有自行车装置时,您可能还想处理这种情况:
CASE SUM(CASE WHEN category = 'bike' THEN quantity ELSE 0 END)
WHEN 0 then 'No Bike Unit'
WHEN 1 then '1 Bike Unit'
ELSE '2+ Bike Units'
END AS qty_flag_bike
推荐阅读
- tensorboard - 如何在张量板中制作表格
- ruby-on-rails - Ruby on Rails Grape API 省略属性
- android - 数据显示为空,但 url 适用于 Postman
- php - OPENCART php 创建了新的控制器查询方法并查看获取空行
- windows - 命令提示符 - 使用批处理文件上传文件时出现“找不到文件”错误
- javascript - Three.js 粒子和滚动处理
- amazon-s3 - AWS 策略中 transfer:HomeFolder 和 transfer:HomeDirectory 之间的区别
- datetime - Dataweave 2 - 无法解析到 DateTime 的字符串
- javascript - 如何将我的 JavaScript Web 应用程序转换为 Android 应用程序?
- python - 将 3 层嵌套列表转换为 ndim numpy 数组时出错