sql - 在最宽维度上使用 GROUP BY 的 CASE WHEN 语句
问题描述
我正在尝试使用结果 GROUPING 创建一个 CASE WHEN 并对 SQL 表中最广泛的维度进行分类。现在表格看起来像这样:
月 | 广告组 | 关键字名称 | 广告类型 | 点击百分比 |
---|---|---|---|---|
1 | 卡车 | 皮卡 | 横幅 | .3 |
1 | 轿车 | 四门 | 视频 | .2 |
1 | 越野车 | 艰难的 | 关联 | .7 |
2 | 卡车 | 越野 | 横幅 | .6 |
2 | 轿车 | 两门 | 视频 | .7 |
2 | 越野车 | 宽敞 | 关联 | .8 |
这里最广泛的维度是月份,我有一个基准标识符,如果横幅和视频的 click_percent 超过 0.5,则确定一个唯一月份为“结束”。链接点击在此分类的结果中没有发言权。我的 SQL 语句现在看起来像这样
SELECT *,
CASE
WHEN ad_type in ('banner', 'video') and click_% > .5 THEN "Great"
ELSE "Low"
END AS benchmark
FROM table
结果,我现在得到:
月 | 广告组 | 关键字名称 | 广告类型 | 点击百分比 | 基准 |
---|---|---|---|---|---|
1 | 卡车 | 皮卡 | 横幅 | .3 | 在下面 |
1 | 轿车 | 四门 | 视频 | .2 | 在下面 |
1 | 越野车 | 艰难的 | 关联 | .7 | 在下面 |
2 | 卡车 | 越野 | 横幅 | .6 | 超过 |
2 | 轿车 | 两门 | 视频 | .7 | 超过 |
2 | 越野车 | 宽敞 | 关联 | .8 | 在下面 |
不幸的是,Link 也是 ad_type 下的一个值,它在同一个月得到了自己的分类。我认为我最大的问题是我没有按月对 CASE WHEN 的结果进行分组。无论有多少 ad_types 或其他更多样化的维度,每个月都应该有一个不同的值,“Over”或“Under”。其他一些注意事项是,此查询是创建此视图的更大查询的一部分,而 click_percent 是一个聚合字段。
这就是我的结果应该是这样的:
月 | 广告组 | 关键字名称 | 广告类型 | 点击百分比 | 基准 |
---|---|---|---|---|---|
1 | 卡车 | 皮卡 | 横幅 | .3 | 在下面 |
1 | 轿车 | 四门 | 视频 | .2 | 在下面 |
1 | 越野车 | 艰难的 | 关联 | .7 | 在下面 |
2 | 卡车 | 越野 | 横幅 | .6 | 超过 |
2 | 轿车 | 两门 | 视频 | .7 | 超过 |
2 | 越野车 | 宽敞 | 关联 | .8 | 超过 |
这是我为了排除故障而尝试的另一个失败的查询:
SELECT month, benchmark
from(
SELECT
month, ad_type, click_percent,
CASE WHEN ad_type in ('banner', 'video') and click_% > .5 THEN "Over"
ELSE "Under"
END AS benchmark
FROM table
group by month, ad_type, click_percent)
group by month, benchmark
任何建议或文档都会非常有帮助!让我知道你的想法!
解决方案
如果您想要带有“over”标志的月份,您可以使用聚合:
SELECT month,
(CASE WHEN MAX(CASE WHEN ad_type = 'banner' THEN click_% END) > 0.5 AND
MAX(CASE WHEN ad_type = 'video' THEN click_% END) > 0.5
THEN 'over' ELSE 'low'
END) as benchmark
FROM table
GROUP BY month;
推荐阅读
- java - Java SocketAPI - 远程断开连接后第二次写入时出现 IOException
- css - 从 Wordpress 页面和帖子中删除通用标题
- reactjs - 使用重定向时的内存泄漏警告
- typescript - 有没有办法在打字稿中用值注释类型?
- javascript - 如何使用jquery在另一个之前执行一个ajax函数
- python-3.x - 熊猫合并两个csv并保持层次结构
- python-3.x - 生成一个包含两个具有特定长度的唯一元素的列表
- java - 验证 CNIC Image Android Studio Java
- hl7-fhir - 有没有办法可以在 FHIR 中维护 json?
- 3d - 合并两个 3D 网格