sql - SQL 中两个 SELECT 语句的减法(redshift)
问题描述
有人可以解释为什么以下不起作用吗?
((SELECT COUNT(*) FROM Table1) - (SELECT Count(Metric) FROM Table1)) as X
Count(*) 将为我提供表中的所有行,而 Count(Metric) 将为我提供 Metric 列中的非空值。因此,它们之间的差异将为我提供度量列中空值的数量,并且我已将此列标记为 X。我只想要列 X 中两者之间的差异,但不确定为什么它不起作用。
顺便说一句,我知道我可以通过以下方式让它工作:
SELECT COUNT(*) as a, count(metric) as b, COUNT(*)-COUNT(metric) as c
解决方案
您将需要select
结果:
SELECT ((SELECT COUNT(*) FROM Table1) - (SELECT Count(Metric) FROM Table1)) as X
但是使用条件聚合更简单:
SELECT SUM(CASE WHEN Metrics IS NULL THEN 1 ELSE 0 END) X FROM table1
推荐阅读
- gitlab - Gitlab wiki 搜索结果显示 markdown 语法
- email - msgraph api,通过搜索字符串过滤共享邮箱
- c# - 在堆积条形图上获取平均值而不是总计?
- docker - Docker 生成带有备份数据的容器
- reactjs - 作为道具传递给子组件的 SWR 数据创建无限获取循环
- html - 在进入 Jinja2 模板中动态创建的链接之前,如何使用确认模型?
- android - Android Emulator Location mocking with geo fix
- javascript - NiodeJS/如何在不下载的情况下找到外部托管图像的大小?
- julia - 朱莉娅 ReinforcementLearning.jl 中的神经网络架构
- python - 如何在 Pygame 中继续声音?